photos/js/photos-vendors-node_modules...

1 line
3.9 MiB
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"file":"photos-vendors-node_modules_nextcloud_upload_dist_index_esm_js.js?v=404bc7da089b0e09663d","mappings":"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EF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINL,IAAK,CACHhrB,IAAK,EACLqrB,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEA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","sources":["webpack:///photos/node_modules/@nextcloud/files/dist/index.esm.js","webpack:///photos/node_modules/p-cancelable/index.js","webpack:///photos/node_modules/p-timeout/index.js","webpack:///photos/node_modules/p-queue/dist/priority-queue.js","webpack:///photos/node_modules/p-queue/dist/lower-bound.js","webpack:///photos/node_modules/p-queue/dist/index.js","webpack:///photos/node_modules/@nextcloud/upload/node_modules/yocto-queue/index.js","webpack:///photos/node_modules/@skjnldsv/sanitize-svg/dist/index.esm.js","webpack:///photos/node_modules/@nextcloud/upload/dist/index.esm.js","webpack:///photos/node_modules/@nextcloud/upload/node_modules/p-limit/index.js","webpack:///photos/node_modules/asn1.js/lib/asn1.js","webpack:///photos/node_modules/asn1.js/lib/asn1/api.js","webpack:///photos/node_modules/asn1.js/lib/asn1/base/buffer.js","webpack:///photos/node_modules/asn1.js/lib/asn1/base/index.js","webpack:///photos/node_modules/asn1.js/lib/asn1/base/node.js","webpack:///photos/node_modules/asn1.js/lib/asn1/base/reporter.js","webpack:///photos/node_modules/asn1.js/lib/asn1/constants/der.js","webpack:///photos/node_modules/asn1.js/lib/asn1/constants/index.js","webpack:///photos/node_modules/asn1.js/lib/asn1/decoders/der.js","webpack:///photos/node_modules/asn1.js/lib/asn1/decoders/index.js","webpack:///photos/node_modules/asn1.js/lib/asn1/decoders/pem.js","webpack:///photos/node_modules/asn1.js/lib/asn1/encoders/der.js","webpack:///photos/node_modules/asn1.js/lib/asn1/encoders/index.js","webpack:///photos/node_modules/asn1.js/lib/asn1/encoders/pem.js","webpack:///photos/node_modules/asn1.js/node_modules/bn.js/lib/bn.js","webpack:///photos/node_modules/bn.js/lib/bn.js","webpack:///photos/node_modules/brorand/index.js","webpack:///photos/node_modules/browserify-aes/aes.js","webpack:///photos/node_modules/browserify-aes/authCipher.js","webpack:///photos/node_modules/browserify-aes/browser.js","webpack:///photos/node_modules/browserify-aes/decrypter.js","webpack:///photos/node_modules/browserify-aes/encrypter.js","webpack:///photos/node_modules/browserify-aes/ghash.js","webpack:///photos/node_modules/browserify-aes/incr32.js","webpack:///photos/node_modules/browserify-aes/modes/cbc.js","webpack:///photos/node_modules/browserify-aes/modes/cfb.js","webpack:///photos/node_modules/browserify-aes/modes/cfb1.js","webpack:///photos/node_modules/browserify-aes/modes/cfb8.js","webpack:///photos/node_modules/browserify-aes/modes/ctr.js","webpack:///photos/node_modules/browserify-aes/modes/ecb.js","webpack:///photos/node_modules/browserify-aes/modes/index.js","webpack:///photos/node_modules/browserify-aes/modes/ofb.js","webpack:///photos/node_modules/browserify-aes/streamCipher.js","webpack:///photos/node_modules/browserify-cipher/browser.js","webpack:///photos/node_modules/browserify-des/index.js","webpack:///photos/node_modules/browserify-des/modes.js","webpack:///photos/node_modules/browserify-rsa/index.js","webpack:///photos/node_modules/browserify-sign/algos.js","webpack:///photos/node_modules/browserify-sign/browser/index.js","webpack:///photos/node_modules/browserify-sign/browser/sign.js","webpack:///photos/node_modules/browserify-sign/browser/verify.js","webpack:///photos/node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js","webpack:///photos/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///photos/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///photos/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js","webpack:///photos/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js","webpack:///photos/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js","webpack:///photos/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///photos/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///photos/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///photos/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///photos/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///photos/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///photos/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///photos/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///photos/node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js","webpack:///photos/node_modules/browserify-sign/node_modules/safe-buffer/index.js","webpack:///photos/node_modules/buffer-xor/index.js","webpack:///photos/node_modules/cipher-base/index.js","webpack:///photos/node_modules/create-ecdh/browser.js","webpack:///photos/node_modules/create-ecdh/node_modules/bn.js/lib/bn.js","webpack:///photos/node_modules/create-hash/browser.js","webpack:///photos/node_modules/create-hash/md5.js","webpack:///photos/node_modules/create-hmac/browser.js","webpack:///photos/node_modules/create-hmac/legacy.js","webpack:///photos/node_modules/crypto-browserify/index.js","webpack:///photos/node_modules/des.js/lib/des.js","webpack:///photos/node_modules/des.js/lib/des/cbc.js","webpack:///photos/node_modules/des.js/lib/des/cipher.js","webpack:///photos/node_modules/des.js/lib/des/des.js","webpack:///photos/node_modules/des.js/lib/des/ede.js","webpack:///photos/node_modules/des.js/lib/des/utils.js","webpack:///photos/node_modules/diffie-hellman/browser.js","webpack:///photos/node_modules/diffie-hellman/lib/dh.js","webpack:///photos/node_modules/diffie-hellman/lib/generatePrime.js","webpack:///photos/node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js","webpack:///photos/node_modules/elliptic/lib/elliptic.js","webpack:///photos/node_modules/elliptic/lib/elliptic/curve/base.js","webpack:///photos/node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack:///photos/node_modules/elliptic/lib/elliptic/curve/index.js","webpack:///photos/node_modules/elliptic/lib/elliptic/curve/mont.js","webpack:///photos/node_modules/elliptic/lib/elliptic/curve/short.js","webpack:///photos/node_modules/elliptic/lib/elliptic/curves.js","webpack:///photos/node_modules/elliptic/lib/elliptic/ec/index.js","webpack:///photos/node_modules/elliptic/lib/elliptic/ec/key.js","webpack:///photos/node_modules/elliptic/lib/elliptic/ec/signature.js","webpack:///photos/node_modules/elliptic/lib/elliptic/eddsa/index.js","webpack:///photos/node_modules/elliptic/lib/elliptic/eddsa/key.js","webpack:///photos/node_modules/elliptic/lib/elliptic/eddsa/signature.js","webpack:///photos/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","webpack:///photos/node_modules/elliptic/lib/elliptic/utils.js","webpack:///photos/node_modules/elliptic/node_modules/bn.js/lib/bn.js","webpack:///photos/node_modules/eventemitter3/index.js","webpack:///photos/node_modules/evp_bytestokey/index.js","webpack:///photos/node_modules/hash-base/index.js","webpack:///photos/node_modules/hash-base/node_modules/readable-stream/errors-browser.js","webpack:///photos/node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///photos/node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///photos/node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js","webpack:///photos/node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js","webpack:///photos/node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js","webpack:///photos/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///photos/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///photos/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///photos/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///photos/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///photos/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///photos/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///photos/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///photos/node_modules/hash-base/node_modules/readable-stream/readable-browser.js","webpack:///photos/node_modules/hash-base/node_modules/safe-buffer/index.js","webpack:///photos/node_modules/hash.js/lib/hash.js","webpack:///photos/node_modules/hash.js/lib/hash/common.js","webpack:///photos/node_modules/hash.js/lib/hash/hmac.js","webpack:///photos/node_modules/hash.js/lib/hash/ripemd.js","webpack:///photos/node_modules/hash.js/lib/hash/sha.js","webpack:///photos/node_modules/hash.js/lib/hash/sha/1.js","webpack:///photos/node_modules/hash.js/lib/hash/sha/224.js","webpack:///photos/node_modules/hash.js/lib/hash/sha/256.js","webpack:///photos/node_modules/hash.js/lib/hash/sha/384.js","webpack:///photos/node_modules/hash.js/lib/hash/sha/512.js","webpack:///photos/node_modules/hash.js/lib/hash/sha/common.js","webpack:///photos/node_modules/hash.js/lib/hash/utils.js","webpack:///photos/node_modules/hmac-drbg/lib/hmac-drbg.js","webpack:///photos/node_modules/md5.js/index.js","webpack:///photos/node_modules/miller-rabin/lib/mr.js","webpack:///photos/node_modules/miller-rabin/node_modules/bn.js/lib/bn.js","webpack:///photos/node_modules/minimalistic-assert/index.js","webpack:///photos/node_modules/minimalistic-crypto-utils/lib/utils.js","webpack:///photos/node_modules/parse-asn1/asn1.js","webpack:///photos/node_modules/parse-asn1/certificate.js","webpack:///photos/node_modules/parse-asn1/fixProc.js","webpack:///photos/node_modules/parse-asn1/index.js","webpack:///photos/node_modules/pbkdf2/browser.js","webpack:///photos/node_modules/pbkdf2/lib/async.js","webpack:///photos/node_modules/pbkdf2/lib/default-encoding.js","webpack:///photos/node_modules/pbkdf2/lib/precondition.js","webpack:///photos/node_modules/pbkdf2/lib/sync-browser.js","webpack:///photos/node_modules/pbkdf2/lib/to-buffer.js","webpack:///photos/node_modules/public-encrypt/browser.js","webpack:///photos/node_modules/public-encrypt/mgf.js","webpack:///photos/node_modules/public-encrypt/node_modules/bn.js/lib/bn.js","webpack:///photos/node_modules/public-encrypt/privateDecrypt.js","webpack:///photos/node_modules/public-encrypt/publicEncrypt.js","webpack:///photos/node_modules/public-encrypt/withPublic.js","webpack:///photos/node_modules/public-encrypt/xor.js","webpack:///photos/node_modules/randombytes/browser.js","webpack:///photos/node_modules/randomfill/browser.js","webpack:///photos/node_modules/ripemd160/index.js","webpack:///photos/node_modules/safer-buffer/safer.js","webpack:///photos/node_modules/sha.js/hash.js","webpack:///photos/node_modules/sha.js/index.js","webpack:///photos/node_modules/sha.js/sha.js","webpack:///photos/node_modules/sha.js/sha1.js","webpack:///photos/node_modules/sha.js/sha224.js","webpack:///photos/node_modules/sha.js/sha256.js","webpack:///photos/node_modules/sha.js/sha384.js","webpack:///photos/node_modules/sha.js/sha512.js"],"sourcesContent":["import { getCanonicalLocale } from '@nextcloud/l10n';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { getLoggerBuilder } from '@nextcloud/logger';\n\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst humanList = ['B', 'KB', 'MB', 'GB', 'TB'];\n/**\n * Format a file size in a human-like format. e.g. 42GB\n *\n * @param size in bytes\n * @param skipSmallSizes avoid rendering tiny sizes and return '< 1 KB' instead\n */\nfunction formatFileSize(size, skipSmallSizes = false) {\n if (typeof size === 'string') {\n size = Number(size);\n }\n // Calculate Log with base 1024: size = 1024 ** order\n let order = size > 0 ? Math.floor(Math.log(size) / Math.log(1024)) : 0;\n // Stay in range of the byte sizes that are defined\n order = Math.min(humanList.length - 1, order);\n const readableFormat = humanList[order];\n let relativeSize = (size / Math.pow(1024, order)).toFixed(1);\n if (skipSmallSizes === true && order === 0) {\n if (relativeSize !== '0.0') {\n return '< 1 KB';\n }\n else {\n return '0 KB';\n }\n }\n if (order < 2) {\n relativeSize = parseFloat(relativeSize).toFixed(0);\n }\n else {\n relativeSize = parseFloat(relativeSize).toLocaleString(getCanonicalLocale());\n }\n return relativeSize + ' ' + readableFormat;\n}\n\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst getLogger = user => {\n if (user === null) {\n return getLoggerBuilder()\n .setApp('files')\n .build();\n }\n return getLoggerBuilder()\n .setApp('files')\n .setUid(user.uid)\n .build();\n};\nvar logger = getLogger(getCurrentUser());\n\n/**\n * @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass NewFileMenu {\n _entries = [];\n registerEntry(entry) {\n this.validateEntry(entry);\n this._entries.push(entry);\n }\n unregisterEntry(entry) {\n const entryIndex = typeof entry === 'string'\n ? this.getEntryIndex(entry)\n : this.getEntryIndex(entry.id);\n if (entryIndex === -1) {\n logger.warn('Entry not found, nothing removed', { entry, entries: this.getEntries() });\n return;\n }\n this._entries.splice(entryIndex, 1);\n }\n /**\n * Get the list of registered entries\n *\n * @param {FileInfo} context the creation context. Usually the current folder FileInfo\n */\n getEntries(context) {\n if (context) {\n return this._entries\n .filter(entry => typeof entry.if === 'function' ? entry.if(context) : true);\n }\n return this._entries;\n }\n getEntryIndex(id) {\n return this._entries.findIndex(entry => entry.id === id);\n }\n validateEntry(entry) {\n if (!entry.id || !entry.displayName || !(entry.iconSvgInline || entry.iconClass)) {\n throw new Error('Invalid entry');\n }\n if (typeof entry.id !== 'string'\n || typeof entry.displayName !== 'string') {\n throw new Error('Invalid id or displayName property');\n }\n if ((entry.iconClass && typeof entry.iconClass !== 'string')\n || (entry.iconSvgInline && typeof entry.iconSvgInline !== 'string')) {\n throw new Error('Invalid icon provided');\n }\n if (entry.if !== undefined && typeof entry.if !== 'function') {\n throw new Error('Invalid if property');\n }\n if (entry.templateName && typeof entry.templateName !== 'string') {\n throw new Error('Invalid templateName property');\n }\n if (entry.handler && typeof entry.handler !== 'function') {\n throw new Error('Invalid handler property');\n }\n if (!entry.templateName && !entry.handler) {\n throw new Error('At least a templateName or a handler must be provided');\n }\n if (this.getEntryIndex(entry.id) !== -1) {\n throw new Error('Duplicate entry');\n }\n }\n}\nconst getNewFileMenu = function () {\n if (typeof window._nc_newfilemenu === 'undefined') {\n window._nc_newfilemenu = new NewFileMenu();\n logger.debug('NewFileMenu initialized');\n }\n return window._nc_newfilemenu;\n};\n\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n/**\n * Add a new menu entry to the upload manager menu\n */\nconst addNewFileMenuEntry = function (entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.registerEntry(entry);\n};\n/**\n * Remove a previously registered entry from the upload menu\n */\nconst removeNewFileMenuEntry = function (entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.unregisterEntry(entry);\n};\n/**\n * Get the list of registered entries from the upload menu\n *\n * @param {FileInfo} context the creation context. Usually the current folder FileInfo\n */\nconst getNewFileMenuEntries = function (context) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.getEntries(context);\n};\n\nexport { addNewFileMenuEntry, formatFileSize, getNewFileMenuEntries, removeNewFileMenuEntry };\n//# sourceMappingURL=index.esm.js.map\n","export class CancelError extends Error {\n\tconstructor(reason) {\n\t\tsuper(reason || 'Promise was canceled');\n\t\tthis.name = 'CancelError';\n\t}\n\n\tget isCanceled() {\n\t\treturn true;\n\t}\n}\n\nconst promiseState = Object.freeze({\n\tpending: Symbol('pending'),\n\tcanceled: Symbol('canceled'),\n\tresolved: Symbol('resolved'),\n\trejected: Symbol('rejected'),\n});\n\nexport default class PCancelable {\n\tstatic fn(userFunction) {\n\t\treturn (...arguments_) => new PCancelable((resolve, reject, onCancel) => {\n\t\t\targuments_.push(onCancel);\n\t\t\tuserFunction(...arguments_).then(resolve, reject);\n\t\t});\n\t}\n\n\t#cancelHandlers = [];\n\t#rejectOnCancel = true;\n\t#state = promiseState.pending;\n\t#promise;\n\t#reject;\n\n\tconstructor(executor) {\n\t\tthis.#promise = new Promise((resolve, reject) => {\n\t\t\tthis.#reject = reject;\n\n\t\t\tconst onResolve = value => {\n\t\t\t\tif (this.#state !== promiseState.canceled || !onCancel.shouldReject) {\n\t\t\t\t\tresolve(value);\n\t\t\t\t\tthis.#setState(promiseState.resolved);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst onReject = error => {\n\t\t\t\tif (this.#state !== promiseState.canceled || !onCancel.shouldReject) {\n\t\t\t\t\treject(error);\n\t\t\t\t\tthis.#setState(promiseState.rejected);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst onCancel = handler => {\n\t\t\t\tif (this.#state !== promiseState.pending) {\n\t\t\t\t\tthrow new Error(`The \\`onCancel\\` handler was attached after the promise ${this.#state.description}.`);\n\t\t\t\t}\n\n\t\t\t\tthis.#cancelHandlers.push(handler);\n\t\t\t};\n\n\t\t\tObject.defineProperties(onCancel, {\n\t\t\t\tshouldReject: {\n\t\t\t\t\tget: () => this.#rejectOnCancel,\n\t\t\t\t\tset: boolean => {\n\t\t\t\t\t\tthis.#rejectOnCancel = boolean;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\n\t\t\texecutor(onResolve, onReject, onCancel);\n\t\t});\n\t}\n\n\t// eslint-disable-next-line unicorn/no-thenable\n\tthen(onFulfilled, onRejected) {\n\t\treturn this.#promise.then(onFulfilled, onRejected);\n\t}\n\n\tcatch(onRejected) {\n\t\treturn this.#promise.catch(onRejected);\n\t}\n\n\tfinally(onFinally) {\n\t\treturn this.#promise.finally(onFinally);\n\t}\n\n\tcancel(reason) {\n\t\tif (this.#state !== promiseState.pending) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#setState(promiseState.canceled);\n\n\t\tif (this.#cancelHandlers.length > 0) {\n\t\t\ttry {\n\t\t\t\tfor (const handler of this.#cancelHandlers) {\n\t\t\t\t\thandler();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthis.#reject(error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (this.#rejectOnCancel) {\n\t\t\tthis.#reject(new CancelError(reason));\n\t\t}\n\t}\n\n\tget isCanceled() {\n\t\treturn this.#state === promiseState.canceled;\n\t}\n\n\t#setState(state) {\n\t\tif (this.#state === promiseState.pending) {\n\t\t\tthis.#state = state;\n\t\t}\n\t}\n}\n\nObject.setPrototypeOf(PCancelable.prototype, Promise.prototype);\n","export class TimeoutError extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = 'TimeoutError';\n\t}\n}\n\n/**\nAn error to be thrown when the request is aborted by AbortController.\nDOMException is thrown instead of this Error when DOMException is available.\n*/\nexport class AbortError extends Error {\n\tconstructor(message) {\n\t\tsuper();\n\t\tthis.name = 'AbortError';\n\t\tthis.message = message;\n\t}\n}\n\n/**\nTODO: Remove AbortError and just throw DOMException when targeting Node 18.\n*/\nconst getDOMException = errorMessage => globalThis.DOMException === undefined ?\n\tnew AbortError(errorMessage) :\n\tnew DOMException(errorMessage);\n\n/**\nTODO: Remove below function and just 'reject(signal.reason)' when targeting Node 18.\n*/\nconst getAbortedReason = signal => {\n\tconst reason = signal.reason === undefined ?\n\t\tgetDOMException('This operation was aborted.') :\n\t\tsignal.reason;\n\n\treturn reason instanceof Error ? reason : getDOMException(reason);\n};\n\nexport default function pTimeout(promise, milliseconds, fallback, options) {\n\tlet timer;\n\n\tconst cancelablePromise = new Promise((resolve, reject) => {\n\t\tif (typeof milliseconds !== 'number' || Math.sign(milliseconds) !== 1) {\n\t\t\tthrow new TypeError(`Expected \\`milliseconds\\` to be a positive number, got \\`${milliseconds}\\``);\n\t\t}\n\n\t\tif (milliseconds === Number.POSITIVE_INFINITY) {\n\t\t\tresolve(promise);\n\t\t\treturn;\n\t\t}\n\n\t\toptions = {\n\t\t\tcustomTimers: {setTimeout, clearTimeout},\n\t\t\t...options\n\t\t};\n\n\t\tif (options.signal) {\n\t\t\tconst {signal} = options;\n\t\t\tif (signal.aborted) {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t}\n\n\t\t\tsignal.addEventListener('abort', () => {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t});\n\t\t}\n\n\t\ttimer = options.customTimers.setTimeout.call(undefined, () => {\n\t\t\tif (typeof fallback === 'function') {\n\t\t\t\ttry {\n\t\t\t\t\tresolve(fallback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst message = typeof fallback === 'string' ? fallback : `Promise timed out after ${milliseconds} milliseconds`;\n\t\t\tconst timeoutError = fallback instanceof Error ? fallback : new TimeoutError(message);\n\n\t\t\tif (typeof promise.cancel === 'function') {\n\t\t\t\tpromise.cancel();\n\t\t\t}\n\n\t\t\treject(timeoutError);\n\t\t}, milliseconds);\n\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tresolve(await promise);\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t} finally {\n\t\t\t\toptions.customTimers.clearTimeout.call(undefined, timer);\n\t\t\t}\n\t\t})();\n\t});\n\n\tcancelablePromise.clear = () => {\n\t\tclearTimeout(timer);\n\t\ttimer = undefined;\n\t};\n\n\treturn cancelablePromise;\n}\n","var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PriorityQueue_queue;\nimport lowerBound from './lower-bound.js';\nexport default class PriorityQueue {\n constructor() {\n _PriorityQueue_queue.set(this, []);\n }\n enqueue(run, options) {\n options = {\n priority: 0,\n ...options,\n };\n const element = {\n priority: options.priority,\n run,\n };\n if (this.size && __classPrivateFieldGet(this, _PriorityQueue_queue, \"f\")[this.size - 1].priority >= options.priority) {\n __classPrivateFieldGet(this, _PriorityQueue_queue, \"f\").push(element);\n return;\n }\n const index = lowerBound(__classPrivateFieldGet(this, _PriorityQueue_queue, \"f\"), element, (a, b) => b.priority - a.priority);\n __classPrivateFieldGet(this, _PriorityQueue_queue, \"f\").splice(index, 0, element);\n }\n dequeue() {\n const item = __classPrivateFieldGet(this, _PriorityQueue_queue, \"f\").shift();\n return item === null || item === void 0 ? void 0 : item.run;\n }\n filter(options) {\n return __classPrivateFieldGet(this, _PriorityQueue_queue, \"f\").filter((element) => element.priority === options.priority).map((element) => element.run);\n }\n get size() {\n return __classPrivateFieldGet(this, _PriorityQueue_queue, \"f\").length;\n }\n}\n_PriorityQueue_queue = new WeakMap();\n","// Port of lower_bound from https://en.cppreference.com/w/cpp/algorithm/lower_bound\n// Used to compute insertion index to keep queue sorted after insertion\nexport default function lowerBound(array, value, comparator) {\n let first = 0;\n let count = array.length;\n while (count > 0) {\n const step = Math.trunc(count / 2);\n let it = first + step;\n if (comparator(array[it], value) <= 0) {\n first = ++it;\n count -= step + 1;\n }\n else {\n count = step;\n }\n }\n return first;\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PQueue_instances, _PQueue_carryoverConcurrencyCount, _PQueue_isIntervalIgnored, _PQueue_intervalCount, _PQueue_intervalCap, _PQueue_interval, _PQueue_intervalEnd, _PQueue_intervalId, _PQueue_timeoutId, _PQueue_queue, _PQueue_queueClass, _PQueue_pendingCount, _PQueue_concurrency, _PQueue_isPaused, _PQueue_throwOnTimeout, _PQueue_doesIntervalAllowAnother_get, _PQueue_doesConcurrentAllowAnother_get, _PQueue_next, _PQueue_emitEvents, _PQueue_onResumeInterval, _PQueue_isIntervalPaused_get, _PQueue_tryToStartAnother, _PQueue_initializeIntervalIfNeeded, _PQueue_onInterval, _PQueue_processQueue, _PQueue_onEvent;\nimport EventEmitter from 'eventemitter3';\nimport pTimeout, { TimeoutError } from 'p-timeout';\nimport PriorityQueue from './priority-queue.js';\nconst timeoutError = new TimeoutError();\n/**\nThe error thrown by `queue.add()` when a job is aborted before it is run. See `signal`.\n*/\nexport class AbortError extends Error {\n}\n/**\nPromise queue with concurrency control.\n*/\nexport default class PQueue extends EventEmitter {\n constructor(options) {\n var _a, _b, _c, _d;\n super();\n _PQueue_instances.add(this);\n _PQueue_carryoverConcurrencyCount.set(this, void 0);\n _PQueue_isIntervalIgnored.set(this, void 0);\n _PQueue_intervalCount.set(this, 0);\n _PQueue_intervalCap.set(this, void 0);\n _PQueue_interval.set(this, void 0);\n _PQueue_intervalEnd.set(this, 0);\n _PQueue_intervalId.set(this, void 0);\n _PQueue_timeoutId.set(this, void 0);\n _PQueue_queue.set(this, void 0);\n _PQueue_queueClass.set(this, void 0);\n _PQueue_pendingCount.set(this, 0);\n // The `!` is needed because of https://github.com/microsoft/TypeScript/issues/32194\n _PQueue_concurrency.set(this, void 0);\n _PQueue_isPaused.set(this, void 0);\n _PQueue_throwOnTimeout.set(this, void 0);\n /**\n Per-operation timeout in milliseconds. Operations fulfill once `timeout` elapses if they haven't already.\n \n Applies to each future operation.\n */\n Object.defineProperty(this, \"timeout\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n options = {\n carryoverConcurrencyCount: false,\n intervalCap: Number.POSITIVE_INFINITY,\n interval: 0,\n concurrency: Number.POSITIVE_INFINITY,\n autoStart: true,\n queueClass: PriorityQueue,\n ...options,\n };\n if (!(typeof options.intervalCap === 'number' && options.intervalCap >= 1)) {\n throw new TypeError(`Expected \\`intervalCap\\` to be a number from 1 and up, got \\`${(_b = (_a = options.intervalCap) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : ''}\\` (${typeof options.intervalCap})`);\n }\n if (options.interval === undefined || !(Number.isFinite(options.interval) && options.interval >= 0)) {\n throw new TypeError(`Expected \\`interval\\` to be a finite number >= 0, got \\`${(_d = (_c = options.interval) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : ''}\\` (${typeof options.interval})`);\n }\n __classPrivateFieldSet(this, _PQueue_carryoverConcurrencyCount, options.carryoverConcurrencyCount, \"f\");\n __classPrivateFieldSet(this, _PQueue_isIntervalIgnored, options.intervalCap === Number.POSITIVE_INFINITY || options.interval === 0, \"f\");\n __classPrivateFieldSet(this, _PQueue_intervalCap, options.intervalCap, \"f\");\n __classPrivateFieldSet(this, _PQueue_interval, options.interval, \"f\");\n __classPrivateFieldSet(this, _PQueue_queue, new options.queueClass(), \"f\");\n __classPrivateFieldSet(this, _PQueue_queueClass, options.queueClass, \"f\");\n this.concurrency = options.concurrency;\n this.timeout = options.timeout;\n __classPrivateFieldSet(this, _PQueue_throwOnTimeout, options.throwOnTimeout === true, \"f\");\n __classPrivateFieldSet(this, _PQueue_isPaused, options.autoStart === false, \"f\");\n }\n get concurrency() {\n return __classPrivateFieldGet(this, _PQueue_concurrency, \"f\");\n }\n set concurrency(newConcurrency) {\n if (!(typeof newConcurrency === 'number' && newConcurrency >= 1)) {\n throw new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${newConcurrency}\\` (${typeof newConcurrency})`);\n }\n __classPrivateFieldSet(this, _PQueue_concurrency, newConcurrency, \"f\");\n __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_processQueue).call(this);\n }\n /**\n Adds a sync or async task to the queue. Always returns a promise.\n */\n async add(fn, options = {}) {\n return new Promise((resolve, reject) => {\n const run = async () => {\n var _a;\n var _b, _c;\n __classPrivateFieldSet(this, _PQueue_pendingCount, (_b = __classPrivateFieldGet(this, _PQueue_pendingCount, \"f\"), _b++, _b), \"f\");\n __classPrivateFieldSet(this, _PQueue_intervalCount, (_c = __classPrivateFieldGet(this, _PQueue_intervalCount, \"f\"), _c++, _c), \"f\");\n try {\n if ((_a = options.signal) === null || _a === void 0 ? void 0 : _a.aborted) {\n // TODO: Use ABORT_ERR code when targeting Node.js 16 (https://nodejs.org/docs/latest-v16.x/api/errors.html#abort_err)\n reject(new AbortError('The task was aborted.'));\n return;\n }\n const operation = (this.timeout === undefined && options.timeout === undefined) ? fn({ signal: options.signal }) : pTimeout(Promise.resolve(fn({ signal: options.signal })), (options.timeout === undefined ? this.timeout : options.timeout), () => {\n if (options.throwOnTimeout === undefined ? __classPrivateFieldGet(this, _PQueue_throwOnTimeout, \"f\") : options.throwOnTimeout) {\n reject(timeoutError);\n }\n return undefined;\n });\n const result = await operation;\n resolve(result);\n this.emit('completed', result);\n }\n catch (error) {\n reject(error);\n this.emit('error', error);\n }\n __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_next).call(this);\n };\n __classPrivateFieldGet(this, _PQueue_queue, \"f\").enqueue(run, options);\n __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_tryToStartAnother).call(this);\n this.emit('add');\n });\n }\n /**\n Same as `.add()`, but accepts an array of sync or async functions.\n\n @returns A promise that resolves when all functions are resolved.\n */\n async addAll(functions, options) {\n return Promise.all(functions.map(async (function_) => this.add(function_, options)));\n }\n /**\n Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)\n */\n start() {\n if (!__classPrivateFieldGet(this, _PQueue_isPaused, \"f\")) {\n return this;\n }\n __classPrivateFieldSet(this, _PQueue_isPaused, false, \"f\");\n __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_processQueue).call(this);\n return this;\n }\n /**\n Put queue execution on hold.\n */\n pause() {\n __classPrivateFieldSet(this, _PQueue_isPaused, true, \"f\");\n }\n /**\n Clear the queue.\n */\n clear() {\n __classPrivateFieldSet(this, _PQueue_queue, new (__classPrivateFieldGet(this, _PQueue_queueClass, \"f\"))(), \"f\");\n }\n /**\n Can be called multiple times. Useful if you for example add additional items at a later time.\n\n @returns A promise that settles when the queue becomes empty.\n */\n async onEmpty() {\n // Instantly resolve if the queue is empty\n if (__classPrivateFieldGet(this, _PQueue_queue, \"f\").size === 0) {\n return;\n }\n await __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_onEvent).call(this, 'empty');\n }\n /**\n @returns A promise that settles when the queue size is less than the given limit: `queue.size < limit`.\n\n If you want to avoid having the queue grow beyond a certain size you can `await queue.onSizeLessThan()` before adding a new item.\n\n Note that this only limits the number of items waiting to start. There could still be up to `concurrency` jobs already running that this call does not include in its calculation.\n */\n async onSizeLessThan(limit) {\n // Instantly resolve if the queue is empty.\n if (__classPrivateFieldGet(this, _PQueue_queue, \"f\").size < limit) {\n return;\n }\n await __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_onEvent).call(this, 'next', () => __classPrivateFieldGet(this, _PQueue_queue, \"f\").size < limit);\n }\n /**\n The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.\n\n @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.\n */\n async onIdle() {\n // Instantly resolve if none pending and if nothing else is queued\n if (__classPrivateFieldGet(this, _PQueue_pendingCount, \"f\") === 0 && __classPrivateFieldGet(this, _PQueue_queue, \"f\").size === 0) {\n return;\n }\n await __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_onEvent).call(this, 'idle');\n }\n /**\n Size of the queue, the number of queued items waiting to run.\n */\n get size() {\n return __classPrivateFieldGet(this, _PQueue_queue, \"f\").size;\n }\n /**\n Size of the queue, filtered by the given options.\n\n For example, this can be used to find the number of items remaining in the queue with a specific priority level.\n */\n sizeBy(options) {\n // eslint-disable-next-line unicorn/no-array-callback-reference\n return __classPrivateFieldGet(this, _PQueue_queue, \"f\").filter(options).length;\n }\n /**\n Number of running items (no longer in the queue).\n */\n get pending() {\n return __classPrivateFieldGet(this, _PQueue_pendingCount, \"f\");\n }\n /**\n Whether the queue is currently paused.\n */\n get isPaused() {\n return __classPrivateFieldGet(this, _PQueue_isPaused, \"f\");\n }\n}\n_PQueue_carryoverConcurrencyCount = new WeakMap(), _PQueue_isIntervalIgnored = new WeakMap(), _PQueue_intervalCount = new WeakMap(), _PQueue_intervalCap = new WeakMap(), _PQueue_interval = new WeakMap(), _PQueue_intervalEnd = new WeakMap(), _PQueue_intervalId = new WeakMap(), _PQueue_timeoutId = new WeakMap(), _PQueue_queue = new WeakMap(), _PQueue_queueClass = new WeakMap(), _PQueue_pendingCount = new WeakMap(), _PQueue_concurrency = new WeakMap(), _PQueue_isPaused = new WeakMap(), _PQueue_throwOnTimeout = new WeakMap(), _PQueue_instances = new WeakSet(), _PQueue_doesIntervalAllowAnother_get = function _PQueue_doesIntervalAllowAnother_get() {\n return __classPrivateFieldGet(this, _PQueue_isIntervalIgnored, \"f\") || __classPrivateFieldGet(this, _PQueue_intervalCount, \"f\") < __classPrivateFieldGet(this, _PQueue_intervalCap, \"f\");\n}, _PQueue_doesConcurrentAllowAnother_get = function _PQueue_doesConcurrentAllowAnother_get() {\n return __classPrivateFieldGet(this, _PQueue_pendingCount, \"f\") < __classPrivateFieldGet(this, _PQueue_concurrency, \"f\");\n}, _PQueue_next = function _PQueue_next() {\n var _a;\n __classPrivateFieldSet(this, _PQueue_pendingCount, (_a = __classPrivateFieldGet(this, _PQueue_pendingCount, \"f\"), _a--, _a), \"f\");\n __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_tryToStartAnother).call(this);\n this.emit('next');\n}, _PQueue_emitEvents = function _PQueue_emitEvents() {\n this.emit('empty');\n if (__classPrivateFieldGet(this, _PQueue_pendingCount, \"f\") === 0) {\n this.emit('idle');\n }\n}, _PQueue_onResumeInterval = function _PQueue_onResumeInterval() {\n __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_onInterval).call(this);\n __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_initializeIntervalIfNeeded).call(this);\n __classPrivateFieldSet(this, _PQueue_timeoutId, undefined, \"f\");\n}, _PQueue_isIntervalPaused_get = function _PQueue_isIntervalPaused_get() {\n const now = Date.now();\n if (__classPrivateFieldGet(this, _PQueue_intervalId, \"f\") === undefined) {\n const delay = __classPrivateFieldGet(this, _PQueue_intervalEnd, \"f\") - now;\n if (delay < 0) {\n // Act as the interval was done\n // We don't need to resume it here because it will be resumed on line 160\n __classPrivateFieldSet(this, _PQueue_intervalCount, (__classPrivateFieldGet(this, _PQueue_carryoverConcurrencyCount, \"f\")) ? __classPrivateFieldGet(this, _PQueue_pendingCount, \"f\") : 0, \"f\");\n }\n else {\n // Act as the interval is pending\n if (__classPrivateFieldGet(this, _PQueue_timeoutId, \"f\") === undefined) {\n __classPrivateFieldSet(this, _PQueue_timeoutId, setTimeout(() => {\n __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_onResumeInterval).call(this);\n }, delay), \"f\");\n }\n return true;\n }\n }\n return false;\n}, _PQueue_tryToStartAnother = function _PQueue_tryToStartAnother() {\n if (__classPrivateFieldGet(this, _PQueue_queue, \"f\").size === 0) {\n // We can clear the interval (\"pause\")\n // Because we can redo it later (\"resume\")\n if (__classPrivateFieldGet(this, _PQueue_intervalId, \"f\")) {\n clearInterval(__classPrivateFieldGet(this, _PQueue_intervalId, \"f\"));\n }\n __classPrivateFieldSet(this, _PQueue_intervalId, undefined, \"f\");\n __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_emitEvents).call(this);\n return false;\n }\n if (!__classPrivateFieldGet(this, _PQueue_isPaused, \"f\")) {\n const canInitializeInterval = !__classPrivateFieldGet(this, _PQueue_instances, \"a\", _PQueue_isIntervalPaused_get);\n if (__classPrivateFieldGet(this, _PQueue_instances, \"a\", _PQueue_doesIntervalAllowAnother_get) && __classPrivateFieldGet(this, _PQueue_instances, \"a\", _PQueue_doesConcurrentAllowAnother_get)) {\n const job = __classPrivateFieldGet(this, _PQueue_queue, \"f\").dequeue();\n if (!job) {\n return false;\n }\n this.emit('active');\n job();\n if (canInitializeInterval) {\n __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_initializeIntervalIfNeeded).call(this);\n }\n return true;\n }\n }\n return false;\n}, _PQueue_initializeIntervalIfNeeded = function _PQueue_initializeIntervalIfNeeded() {\n if (__classPrivateFieldGet(this, _PQueue_isIntervalIgnored, \"f\") || __classPrivateFieldGet(this, _PQueue_intervalId, \"f\") !== undefined) {\n return;\n }\n __classPrivateFieldSet(this, _PQueue_intervalId, setInterval(() => {\n __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_onInterval).call(this);\n }, __classPrivateFieldGet(this, _PQueue_interval, \"f\")), \"f\");\n __classPrivateFieldSet(this, _PQueue_intervalEnd, Date.now() + __classPrivateFieldGet(this, _PQueue_interval, \"f\"), \"f\");\n}, _PQueue_onInterval = function _PQueue_onInterval() {\n if (__classPrivateFieldGet(this, _PQueue_intervalCount, \"f\") === 0 && __classPrivateFieldGet(this, _PQueue_pendingCount, \"f\") === 0 && __classPrivateFieldGet(this, _PQueue_intervalId, \"f\")) {\n clearInterval(__classPrivateFieldGet(this, _PQueue_intervalId, \"f\"));\n __classPrivateFieldSet(this, _PQueue_intervalId, undefined, \"f\");\n }\n __classPrivateFieldSet(this, _PQueue_intervalCount, __classPrivateFieldGet(this, _PQueue_carryoverConcurrencyCount, \"f\") ? __classPrivateFieldGet(this, _PQueue_pendingCount, \"f\") : 0, \"f\");\n __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_processQueue).call(this);\n}, _PQueue_processQueue = function _PQueue_processQueue() {\n // eslint-disable-next-line no-empty\n while (__classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_tryToStartAnother).call(this)) { }\n}, _PQueue_onEvent = async function _PQueue_onEvent(event, filter) {\n return new Promise(resolve => {\n const listener = () => {\n if (filter && !filter()) {\n return;\n }\n this.off(event, listener);\n resolve();\n };\n this.on(event, listener);\n });\n};\n","/*\nHow it works:\n`this.#head` is an instance of `Node` which keeps track of its current value and nests another instance of `Node` that keeps the value that comes after it. When a value is provided to `.enqueue()`, the code needs to iterate through `this.#head`, going deeper and deeper to find the last value. However, iterating through every single item is slow. This problem is solved by saving a reference to the last value as `this.#tail` so that it can reference it to add a new value.\n*/\n\nclass Node {\n\tvalue;\n\tnext;\n\n\tconstructor(value) {\n\t\tthis.value = value;\n\t}\n}\n\nexport default class Queue {\n\t#head;\n\t#tail;\n\t#size;\n\n\tconstructor() {\n\t\tthis.clear();\n\t}\n\n\tenqueue(value) {\n\t\tconst node = new Node(value);\n\n\t\tif (this.#head) {\n\t\t\tthis.#tail.next = node;\n\t\t\tthis.#tail = node;\n\t\t} else {\n\t\t\tthis.#head = node;\n\t\t\tthis.#tail = node;\n\t\t}\n\n\t\tthis.#size++;\n\t}\n\n\tdequeue() {\n\t\tconst current = this.#head;\n\t\tif (!current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#head = this.#head.next;\n\t\tthis.#size--;\n\t\treturn current.value;\n\t}\n\n\tclear() {\n\t\tthis.#head = undefined;\n\t\tthis.#tail = undefined;\n\t\tthis.#size = 0;\n\t}\n\n\tget size() {\n\t\treturn this.#size;\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tlet current = this.#head;\n\n\t\twhile (current) {\n\t\t\tyield current.value;\n\t\t\tcurrent = current.next;\n\t\t}\n\t}\n}\n","import { Buffer } from 'buffer';\nimport isSvg from 'is-svg';\n\nconst readAsText = (svg) => new Promise((resolve) => {\n if (!isFile(svg)) {\n resolve(svg.toString('utf-8'));\n }\n else {\n const fileReader = new FileReader();\n fileReader.onload = () => {\n resolve(fileReader.result);\n };\n fileReader.readAsText(svg);\n }\n});\nconst isFile = (obj) => {\n return obj.size !== undefined;\n};\nconst sanitizeSVG = async (svg) => {\n if (!svg) {\n throw new Error('Not an svg');\n }\n let svgText = '';\n if (Buffer.isBuffer(svg) || svg instanceof File) {\n svgText = await readAsText(svg);\n }\n else {\n svgText = svg;\n }\n if (!isSvg(svgText)) {\n throw new Error('Not an svg');\n }\n const div = document.createElement('div');\n div.innerHTML = svgText;\n const svgEl = div.firstElementChild;\n const attributes = Array.from(svgEl.attributes).map(({ name }) => name);\n const hasScriptAttr = !!attributes.find((attr) => attr.startsWith('on'));\n const scripts = svgEl.getElementsByTagName('script');\n return scripts.length === 0 && !hasScriptAttr ? svg : null;\n};\n\nexport { sanitizeSVG };\n//# sourceMappingURL=index.esm.js.map\n","import { CanceledError } from 'axios';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport axios from '@nextcloud/axios';\nimport PCancelable from 'p-cancelable';\nimport PQueue from 'p-queue';\nimport crypto from 'crypto-browserify';\nimport PLimit from 'p-limit';\nimport { getLoggerBuilder } from '@nextcloud/logger';\nimport { getNewFileMenuEntries } from '@nextcloud/files';\nimport { sanitizeSVG } from '@skjnldsv/sanitize-svg';\n\n(function() {\n const env = {\"TRANSLATIONS\":[{\"locale\":\"af\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"af\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: af\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"ar\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Arabic (https://www.transifex.com/nextcloud/teams/64236/ar/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"ar\",\"Plural-Forms\":\"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Arabic (https://www.transifex.com/nextcloud/teams/64236/ar/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ar\\nPlural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"ar_SA\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Arabic (Saudi Arabia) (https://www.transifex.com/nextcloud/teams/64236/ar_SA/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"ar_SA\",\"Plural-Forms\":\"nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Arabic (Saudi Arabia) (https://www.transifex.com/nextcloud/teams/64236/ar_SA/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ar_SA\\nPlural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"ast\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Asturian (https://www.transifex.com/nextcloud/teams/64236/ast/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"ast\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Asturian (https://www.transifex.com/nextcloud/teams/64236/ast/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ast\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"az\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Azerbaijani (https://www.transifex.com/nextcloud/teams/64236/az/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"az\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Azerbaijani (https://www.transifex.com/nextcloud/teams/64236/az/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: az\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"be\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"be\",\"Plural-Forms\":\"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: be\\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"bg_BG\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"bg_BG\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: bg_BG\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"bn_BD\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"bn_BD\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: bn_BD\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"br\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"br\",\"Plural-Forms\":\"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: br\\nPlural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"bs\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"bs\",\"Plural-Forms\":\"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: bs\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"ca\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\",\"Language-Team\":\"Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"ca\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nMarc Riera <marcriera@softcatala.org>, 2022\\nToni Hermoso Pulido <toniher@softcatala.cat>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\\nLanguage-Team: Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ca\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"Queden {seconds} segons\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"Queden {time}\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"Queden uns segons\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Afegeix\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Cancel·la les pujades\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"S'està estimant el temps restant\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"En pausa\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"Puja els fitxers\"]}}}}},{\"locale\":\"cs\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Pavel Borecki <pavel.borecki@gmail.com>, 2022\",\"Language-Team\":\"Czech (https://www.transifex.com/nextcloud/teams/64236/cs/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"cs\",\"Plural-Forms\":\"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nPavel Borecki <pavel.borecki@gmail.com>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2022\\nLanguage-Team: Czech (https://www.transifex.com/nextcloud/teams/64236/cs/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: cs\\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"zbývá {seconds}\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"zbývá {time}\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"zbývá několik sekund\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Přidat\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Zrušit nahrávání\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"odhadovaný zbývající čas\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"pozastaveno\"]}}}}},{\"locale\":\"cs_CZ\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Pavel Borecki <pavel.borecki@gmail.com>, 2022\",\"Language-Team\":\"Czech (Czech Republic) (https://www.transifex.com/nextcloud/teams/64236/cs_CZ/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"cs_CZ\",\"Plural-Forms\":\"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nPavel Borecki <pavel.borecki@gmail.com>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2022\\nLanguage-Team: Czech (Czech Republic) (https://www.transifex.com/nextcloud/teams/64236/cs_CZ/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: cs_CZ\\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"zbývá {seconds}\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"zbývá {time}\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"zbývá několik sekund\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Přidat\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Zrušit nahrávání\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"odhadovaný zbývající čas\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"pozastaveno\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"Nahrát soubory\"]}}}}},{\"locale\":\"cy_GB\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"cy_GB\",\"Plural-Forms\":\"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: cy_GB\\nPlural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"da\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Henrik Dunch, 2022\",\"Language-Team\":\"Danish (https://www.transifex.com/nextcloud/teams/64236/da/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"da\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nHenrik Dunch, 2022\\n\"},\"msgstr\":[\"Last-Translator: Henrik Dunch, 2022\\nLanguage-Team: Danish (https://www.transifex.com/nextcloud/teams/64236/da/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: da\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"{sekunder} sekunder tilbage\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"{tid} tilbage\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"et par sekunder tilbage\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Tilføj\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Annuller uploads\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"estimering af resterende tid\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"pauset\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"Upload filer\"]}}}}},{\"locale\":\"de\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"German (https://www.transifex.com/nextcloud/teams/64236/de/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"de\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: German (https://www.transifex.com/nextcloud/teams/64236/de/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: de\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"de_DE\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Mario Siegmann <mario_siegmann@web.de>, 2022\",\"Language-Team\":\"German (Germany) (https://www.transifex.com/nextcloud/teams/64236/de_DE/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"de_DE\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nMario Siegmann <mario_siegmann@web.de>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2022\\nLanguage-Team: German (Germany) (https://www.transifex.com/nextcloud/teams/64236/de_DE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: de_DE\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"{seconds} Sekunden verbleibend\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"{time} verbleibend\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"ein paar Sekunden verbleibend\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Hinzufügen\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Hochladen abbrechen\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"Geschätzte verbleibende Zeit\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"Pausiert\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"Dateien hochladen\"]}}}}},{\"locale\":\"el\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"el\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: el\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"el_GR\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Greek (Greece) (https://www.transifex.com/nextcloud/teams/64236/el_GR/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"el_GR\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Greek (Greece) (https://www.transifex.com/nextcloud/teams/64236/el_GR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: el_GR\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"en_GB\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Andi Chandler <andi@gowling.com>, 2022\",\"Language-Team\":\"English (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/en_GB/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"en_GB\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nAndi Chandler <andi@gowling.com>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Andi Chandler <andi@gowling.com>, 2022\\nLanguage-Team: English (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/en_GB/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: en_GB\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"{seconds} seconds left\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"{time} left\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"a few seconds left\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Add\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Cancel uploads\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"estimating time left\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"paused\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"Upload files\"]}}}}},{\"locale\":\"eo\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"eo\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: eo\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"es\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Next Cloud <nextcloud.translator.es@cgj.es>, 2022\",\"Language-Team\":\"Spanish (https://www.transifex.com/nextcloud/teams/64236/es/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"es\",\"Plural-Forms\":\"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nFlorin Baras, 2022\\nHecbert Gonzalez, 2022\\nNext Cloud <nextcloud.translator.es@cgj.es>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Next Cloud <nextcloud.translator.es@cgj.es>, 2022\\nLanguage-Team: Spanish (https://www.transifex.com/nextcloud/teams/64236/es/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"{seconds} segundos restantes\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"{time} restante\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"quedan unos segundos\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Añadir\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Cancelar subidas\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"estimación del tiempo restante\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"pausado\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"Subir archivos\"]}}}}},{\"locale\":\"es_419\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"es_419\",\"Plural-Forms\":\"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_419\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"es_AR\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Matias Iglesias, 2022\",\"Language-Team\":\"Spanish (Argentina) (https://www.transifex.com/nextcloud/teams/64236/es_AR/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"es_AR\",\"Plural-Forms\":\"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nMatias Iglesias, 2022\\n\"},\"msgstr\":[\"Last-Translator: Matias Iglesias, 2022\\nLanguage-Team: Spanish (Argentina) (https://www.transifex.com/nextcloud/teams/64236/es_AR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_AR\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"{seconds} segundos restantes\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"{time} restante\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"quedan unos segundos\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Añadir\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Cancelar subidas\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"estimando tiempo restante\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"pausado\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"Subir archivos\"]}}}}},{\"locale\":\"es_CL\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"es_CL\",\"Plural-Forms\":\"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_CL\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"es_CO\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"es_CO\",\"Plural-Forms\":\"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_CO\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"es_CR\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"es_CR\",\"Plural-Forms\":\"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_CR\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"es_DO\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"es_DO\",\"Plural-Forms\":\"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_DO\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"es_EC\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"es_EC\",\"Plural-Forms\":\"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_EC\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"es_GT\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"es_GT\",\"Plural-Forms\":\"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_GT\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"es_HN\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"es_HN\",\"Plural-Forms\":\"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_HN\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"es_MX\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Spanish (Mexico) (https://www.transifex.com/nextcloud/teams/64236/es_MX/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"es_MX\",\"Plural-Forms\":\"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Mexico) (https://www.transifex.com/nextcloud/teams/64236/es_MX/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_MX\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"es_NI\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"es_NI\",\"Plural-Forms\":\"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_NI\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"es_PA\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"es_PA\",\"Plural-Forms\":\"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_PA\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"es_PE\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"es_PE\",\"Plural-Forms\":\"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_PE\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"es_PR\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"es_PR\",\"Plural-Forms\":\"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_PR\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"es_PY\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"es_PY\",\"Plural-Forms\":\"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_PY\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"es_SV\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"es_SV\",\"Plural-Forms\":\"nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_SV\\nPlural-Forms: nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"es_UY\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"es_UY\",\"Plural-Forms\":\"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_UY\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"et_EE\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Mait R, 2022\",\"Language-Team\":\"Estonian (Estonia) (https://www.transifex.com/nextcloud/teams/64236/et_EE/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"et_EE\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nMait R, 2022\\n\"},\"msgstr\":[\"Last-Translator: Mait R, 2022\\nLanguage-Team: Estonian (Estonia) (https://www.transifex.com/nextcloud/teams/64236/et_EE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: et_EE\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"{seconds} jäänud sekundid\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"{time} aega jäänud\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"jäänud mõni sekund\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Lisa\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Tühista üleslaadimine\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"hinnanguline järelejäänud aeg\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"pausil\"]}}}}},{\"locale\":\"eu\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\",\"Language-Team\":\"Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"eu\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nUnai Tolosa Pontesta <utolosa002@gmail.com>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\\nLanguage-Team: Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: eu\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"{seconds} segundo geratzen dira\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"{time} geratzen da\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"segundo batzuk geratzen dira\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Gehitu\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Ezeztatu igoerak\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"kalkulatutako geratzen den denbora\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"geldituta\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"Igo fitxategiak\"]}}}}},{\"locale\":\"fa\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Persian (https://www.transifex.com/nextcloud/teams/64236/fa/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"fa\",\"Plural-Forms\":\"nplurals=2; plural=(n > 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Persian (https://www.transifex.com/nextcloud/teams/64236/fa/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fa\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"fi_FI\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Jiri Grönroos <jiri.gronroos@iki.fi>, 2022\",\"Language-Team\":\"Finnish (Finland) (https://www.transifex.com/nextcloud/teams/64236/fi_FI/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"fi_FI\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nJiri Grönroos <jiri.gronroos@iki.fi>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>, 2022\\nLanguage-Team: Finnish (Finland) (https://www.transifex.com/nextcloud/teams/64236/fi_FI/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fi_FI\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"{seconds} sekuntia jäljellä\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"{time} jäljellä\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"muutama sekunti jäljellä\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Lisää\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Peruuta lähetykset\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"arvioidaan jäljellä olevaa aikaa\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"keskeytetty\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"Lähetä tiedostoja\"]}}}}},{\"locale\":\"fo\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"fo\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fo\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"fr\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"John Molakvoæ <skjnldsv@protonmail.com>, 2022\",\"Language-Team\":\"French (https://www.transifex.com/nextcloud/teams/64236/fr/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"fr\",\"Plural-Forms\":\"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2022\\n\"},\"msgstr\":[\"Last-Translator: John Molakvoæ <skjnldsv@protonmail.com>, 2022\\nLanguage-Team: French (https://www.transifex.com/nextcloud/teams/64236/fr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fr\\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"{seconds} secondes restantes\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"{time} restant\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"quelques secondes restantes\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Ajouter\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Annuler les envois\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"estimation du temps restant\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"en pause\"]}}}}},{\"locale\":\"gd\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"gd\",\"Plural-Forms\":\"nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: gd\\nPlural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"gl\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Galician (https://www.transifex.com/nextcloud/teams/64236/gl/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"gl\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Galician (https://www.transifex.com/nextcloud/teams/64236/gl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: gl\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"he\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"he\",\"Plural-Forms\":\"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: he\\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"hi_IN\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"hi_IN\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hi_IN\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"hr\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"hr\",\"Plural-Forms\":\"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hr\\nPlural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"hsb\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"hsb\",\"Plural-Forms\":\"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hsb\\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"hu\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Hungarian (https://www.transifex.com/nextcloud/teams/64236/hu/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"hu\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Hungarian (https://www.transifex.com/nextcloud/teams/64236/hu/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hu\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"hu_HU\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Balázs Meskó <meskobalazs@mailbox.org>, 2022\",\"Language-Team\":\"Hungarian (Hungary) (https://www.transifex.com/nextcloud/teams/64236/hu_HU/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"hu_HU\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nBalázs Meskó <meskobalazs@mailbox.org>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Balázs Meskó <meskobalazs@mailbox.org>, 2022\\nLanguage-Team: Hungarian (Hungary) (https://www.transifex.com/nextcloud/teams/64236/hu_HU/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hu_HU\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"{} másodperc van hátra\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"{time} van hátra\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"pár másodperc van hátra\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Hozzáadás\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Feltöltések megszakítása\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"hátralévő idő becslése\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"szüneteltetve\"]}}}}},{\"locale\":\"hy\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"hy\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hy\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"ia\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"ia\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ia\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"id\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Indonesian (https://www.transifex.com/nextcloud/teams/64236/id/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"id\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Indonesian (https://www.transifex.com/nextcloud/teams/64236/id/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: id\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"ig\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"ig\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ig\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"is\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Icelandic (https://www.transifex.com/nextcloud/teams/64236/is/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"is\",\"Plural-Forms\":\"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Icelandic (https://www.transifex.com/nextcloud/teams/64236/is/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: is\\nPlural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"it\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Italian (https://www.transifex.com/nextcloud/teams/64236/it/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"it\",\"Plural-Forms\":\"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Italian (https://www.transifex.com/nextcloud/teams/64236/it/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: it\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"it_IT\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Italian (Italy) (https://www.transifex.com/nextcloud/teams/64236/it_IT/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"it_IT\",\"Plural-Forms\":\"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Italian (Italy) (https://www.transifex.com/nextcloud/teams/64236/it_IT/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: it_IT\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"ja_JP\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"かたかめ, 2022\",\"Language-Team\":\"Japanese (Japan) (https://www.transifex.com/nextcloud/teams/64236/ja_JP/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"ja_JP\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nT.S, 2022\\nかたかめ, 2022\\n\"},\"msgstr\":[\"Last-Translator: かたかめ, 2022\\nLanguage-Team: Japanese (Japan) (https://www.transifex.com/nextcloud/teams/64236/ja_JP/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ja_JP\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"残り {seconds} 秒\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"残り {time}\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"残り数秒\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"追加\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"アップロードをキャンセル\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"概算残り時間\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"一時停止中\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"ファイルをアップデート\"]}}}}},{\"locale\":\"ka\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"ka\",\"Plural-Forms\":\"nplurals=2; plural=(n!=1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ka\\nPlural-Forms: nplurals=2; plural=(n!=1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"ka_GE\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"ka_GE\",\"Plural-Forms\":\"nplurals=2; plural=(n!=1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ka_GE\\nPlural-Forms: nplurals=2; plural=(n!=1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"kab\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Kabyle (https://www.transifex.com/nextcloud/teams/64236/kab/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"kab\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Kabyle (https://www.transifex.com/nextcloud/teams/64236/kab/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: kab\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"kk\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"kk\",\"Plural-Forms\":\"nplurals=2; plural=(n!=1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: kk\\nPlural-Forms: nplurals=2; plural=(n!=1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"km\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"km\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: km\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"kn\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"kn\",\"Plural-Forms\":\"nplurals=2; plural=(n > 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: kn\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"ko\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Korean (https://www.transifex.com/nextcloud/teams/64236/ko/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"ko\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Korean (https://www.transifex.com/nextcloud/teams/64236/ko/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ko\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"la\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"la\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: la\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"lb\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"lb\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lb\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"lo\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"lo\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lo\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"lt_LT\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"lt_LT\",\"Plural-Forms\":\"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lt_LT\\nPlural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"lv\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"lv\",\"Plural-Forms\":\"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lv\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"mk\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Сашко Тодоров <sasetodorov@gmail.com>, 2022\",\"Language-Team\":\"Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"mk\",\"Plural-Forms\":\"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nСашко Тодоров <sasetodorov@gmail.com>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Сашко Тодоров <sasetodorov@gmail.com>, 2022\\nLanguage-Team: Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: mk\\nPlural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"преостануваат {seconds} секунди\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"преостанува {time}\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"уште неколку секунди\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Додади\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Прекини прикачување\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"приближно преостанато време\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"паузирано\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"Прикачување датотеки\"]}}}}},{\"locale\":\"mn\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Mongolian (https://www.transifex.com/nextcloud/teams/64236/mn/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"mn\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Mongolian (https://www.transifex.com/nextcloud/teams/64236/mn/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: mn\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"mr\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"mr\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: mr\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"ms_MY\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Malay (Malaysia) (https://www.transifex.com/nextcloud/teams/64236/ms_MY/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"ms_MY\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Malay (Malaysia) (https://www.transifex.com/nextcloud/teams/64236/ms_MY/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ms_MY\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"my\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"my\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: my\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"nb_NO\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Ari Selseng <ari@selseng.net>, 2022\",\"Language-Team\":\"Norwegian Bokmål (Norway) (https://www.transifex.com/nextcloud/teams/64236/nb_NO/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"nb_NO\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nAri Selseng <ari@selseng.net>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Ari Selseng <ari@selseng.net>, 2022\\nLanguage-Team: Norwegian Bokmål (Norway) (https://www.transifex.com/nextcloud/teams/64236/nb_NO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nb_NO\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"{seconds} sekunder igjen\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"{time} igjen\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"noen få sekunder igjen\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Legg til\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Avbryt opplastninger\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"Estimerer tid igjen\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"pauset\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"Last opp filer\"]}}}}},{\"locale\":\"ne\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"ne\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ne\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"nl\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Dutch (https://www.transifex.com/nextcloud/teams/64236/nl/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"nl\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Dutch (https://www.transifex.com/nextcloud/teams/64236/nl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nl\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"nn\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Norwegian Nynorsk (https://www.transifex.com/nextcloud/teams/64236/nn/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"nn\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Norwegian Nynorsk (https://www.transifex.com/nextcloud/teams/64236/nn/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nn\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"nn_NO\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"nn_NO\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nn_NO\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"oc\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"oc\",\"Plural-Forms\":\"nplurals=2; plural=(n > 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: oc\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"pl\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Valdnet, 2022\",\"Language-Team\":\"Polish (https://www.transifex.com/nextcloud/teams/64236/pl/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"pl\",\"Plural-Forms\":\"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nValdnet, 2022\\n\"},\"msgstr\":[\"Last-Translator: Valdnet, 2022\\nLanguage-Team: Polish (https://www.transifex.com/nextcloud/teams/64236/pl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: pl\\nPlural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"Pozostało {seconds} sekund\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"Pozostało {time}\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"Pozostało kilka sekund\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Dodaj\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Anuluj wysyłanie\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"Szacowanie pozostałego czasu\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"Wstrzymane\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"Wyślij pliki\"]}}}}},{\"locale\":\"ps\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"ps\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ps\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"pt_BR\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Flávio Veras <flaviove@gmail.com>, 2022\",\"Language-Team\":\"Portuguese (Brazil) (https://www.transifex.com/nextcloud/teams/64236/pt_BR/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"pt_BR\",\"Plural-Forms\":\"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nLeonardo Colman <leonardo.dev@colman.com.br>, 2022\\nJeann Cavalcante <wjeann@gmail.com>, 2022\\nFlávio Veras <flaviove@gmail.com>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Flávio Veras <flaviove@gmail.com>, 2022\\nLanguage-Team: Portuguese (Brazil) (https://www.transifex.com/nextcloud/teams/64236/pt_BR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: pt_BR\\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"{seconds} segundos restantes\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"{time} restante\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"alguns segundos restantes\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Adicionar\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Cancelar uploads\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"estimando tempo restante\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"pausado\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"Enviar arquivos\"]}}}}},{\"locale\":\"pt_PT\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"pt_PT\",\"Plural-Forms\":\"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: pt_PT\\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"ro\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\",\"Language-Team\":\"Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"ro\",\"Plural-Forms\":\"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nMădălin Vasiliu <contact@madalinvasiliu.com>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\\nLanguage-Team: Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ro\\nPlural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"{seconds} secunde rămase\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"{time} rămas\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"câteva secunde rămase\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Adaugă\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Anulați încărcările\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"estimarea timpului rămas\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"pus pe pauză\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"Încarcă fișiere\"]}}}}},{\"locale\":\"ru\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Тёма Лапин, 2022\",\"Language-Team\":\"Russian (https://www.transifex.com/nextcloud/teams/64236/ru/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"ru\",\"Plural-Forms\":\"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nАлексей Хрусталёв, 2022\\nТёма Лапин, 2022\\n\"},\"msgstr\":[\"Last-Translator: Тёма Лапин, 2022\\nLanguage-Team: Russian (https://www.transifex.com/nextcloud/teams/64236/ru/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ru\\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"осталось {seconds} секунд\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"осталось {time}\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"осталось несколько секунд\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Добавить\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Отменить загрузки\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"Оценка оставшегося времени\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"Приостановлено\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"Загрузка файлов\"]}}}}},{\"locale\":\"ru_RU\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Russian (Russia) (https://www.transifex.com/nextcloud/teams/64236/ru_RU/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"ru_RU\",\"Plural-Forms\":\"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Russian (Russia) (https://www.transifex.com/nextcloud/teams/64236/ru_RU/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ru_RU\\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"sc\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"sc\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sc\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"si\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"si\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: si\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"si_LK\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Sinhala (Sri Lanka) (https://www.transifex.com/nextcloud/teams/64236/si_LK/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"si_LK\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Sinhala (Sri Lanka) (https://www.transifex.com/nextcloud/teams/64236/si_LK/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: si_LK\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"sk_SK\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Slovak (Slovakia) (https://www.transifex.com/nextcloud/teams/64236/sk_SK/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"sk_SK\",\"Plural-Forms\":\"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Slovak (Slovakia) (https://www.transifex.com/nextcloud/teams/64236/sk_SK/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sk_SK\\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"sl\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Matej Urbančič <>, 2022\",\"Language-Team\":\"Slovenian (https://www.transifex.com/nextcloud/teams/64236/sl/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"sl\",\"Plural-Forms\":\"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nMatej Urbančič <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Matej Urbančič <>, 2022\\nLanguage-Team: Slovenian (https://www.transifex.com/nextcloud/teams/64236/sl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sl\\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"še {seconds} sekund\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"še {time}\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"še nekaj sekund\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Dodaj\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Prekliči pošiljanje\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"ocenjen čas do konca\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"v premoru\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"Pošlji datoteke\"]}}}}},{\"locale\":\"sl_SI\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Slovenian (Slovenia) (https://www.transifex.com/nextcloud/teams/64236/sl_SI/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"sl_SI\",\"Plural-Forms\":\"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Slovenian (Slovenia) (https://www.transifex.com/nextcloud/teams/64236/sl_SI/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sl_SI\\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"sq\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"sq\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sq\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"sr\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"aleksandar jevtic, 2022\",\"Language-Team\":\"Serbian (https://www.transifex.com/nextcloud/teams/64236/sr/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"sr\",\"Plural-Forms\":\"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\naleksandar jevtic, 2022\\n\"},\"msgstr\":[\"Last-Translator: aleksandar jevtic, 2022\\nLanguage-Team: Serbian (https://www.transifex.com/nextcloud/teams/64236/sr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sr\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"{seconds} sekundi preostalo\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"{time} preostalo\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"preostalo je nekoliko sekundi\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Dodaj\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Obustavi otpremanja\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"procena preostalog vremena\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"pauziran\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"Otpremi fajlove\"]}}}}},{\"locale\":\"sr@latin\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"sr@latin\",\"Plural-Forms\":\"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sr@latin\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"sv\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Swedish (https://www.transifex.com/nextcloud/teams/64236/sv/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"sv\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Swedish (https://www.transifex.com/nextcloud/teams/64236/sv/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sv\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"sw\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"sw\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sw\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"ta\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"ta\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ta\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"ta_LK\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Tamil (Sri-Lanka) (https://www.transifex.com/nextcloud/teams/64236/ta_LK/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"ta_LK\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Tamil (Sri-Lanka) (https://www.transifex.com/nextcloud/teams/64236/ta_LK/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ta_LK\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"th\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Thai (https://www.transifex.com/nextcloud/teams/64236/th/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"th\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Thai (https://www.transifex.com/nextcloud/teams/64236/th/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: th\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"th_TH\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Phongpanot Phairat <ppnplus@protonmail.com>, 2022\",\"Language-Team\":\"Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"th_TH\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nPhongpanot Phairat <ppnplus@protonmail.com>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Phongpanot Phairat <ppnplus@protonmail.com>, 2022\\nLanguage-Team: Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: th_TH\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"เหลืออีก {seconds} วินาที\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"เหลืออีก {time}\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"เหลืออีกไม่กี่วินาที\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"เพิ่ม\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"ยกเลิกการอัปโหลด\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"กำลังคำนวณเวลาที่เหลือ\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"หยุดชั่วคราว\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"อัปโหลดไฟล์\"]}}}}},{\"locale\":\"tk\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"tk\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: tk\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"tr\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Kaya Zeren <kayazeren@gmail.com>, 2022\",\"Language-Team\":\"Turkish (https://www.transifex.com/nextcloud/teams/64236/tr/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"tr\",\"Plural-Forms\":\"nplurals=2; plural=(n > 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nKaya Zeren <kayazeren@gmail.com>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Kaya Zeren <kayazeren@gmail.com>, 2022\\nLanguage-Team: Turkish (https://www.transifex.com/nextcloud/teams/64236/tr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: tr\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"{seconds} saniye kaldı\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"{time} kaldı\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"bir kaç saniye kaldı\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Ekle\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Yüklemeleri iptal et\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"öngörülen kalan süre\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"duraklatıldı\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"Dosyaları yükle\"]}}}}},{\"locale\":\"ug\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"ug\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ug\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"uk\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Vitaliy <gviabcua@gmail.com>, 2022\",\"Language-Team\":\"Ukrainian (https://www.transifex.com/nextcloud/teams/64236/uk/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"uk\",\"Plural-Forms\":\"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nVitaliy <gviabcua@gmail.com>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Vitaliy <gviabcua@gmail.com>, 2022\\nLanguage-Team: Ukrainian (https://www.transifex.com/nextcloud/teams/64236/uk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: uk\\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"Залишилося {seconds} секунд\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"Залишилося {time}\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"залишилося кілька секунд\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"Додати\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"Скасувати завантаження\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"оцінка часу, що залишився\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"призупинено\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"Завантажте файли\"]}}}}},{\"locale\":\"ur_PK\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"ur_PK\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ur_PK\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"uz\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Uzbek (https://www.transifex.com/nextcloud/teams/64236/uz/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"uz\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Uzbek (https://www.transifex.com/nextcloud/teams/64236/uz/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: uz\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"vi\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Transifex Bot <>, 2022\",\"Language-Team\":\"Vietnamese (https://www.transifex.com/nextcloud/teams/64236/vi/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"vi\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nTransifex Bot <>, 2022\\n\"},\"msgstr\":[\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Vietnamese (https://www.transifex.com/nextcloud/teams/64236/vi/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: vi\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},\"{estimate} seconds left\":{\"msgid\":\"{estimate} seconds left\",\"msgstr\":[\"\"]},\"{hours} hours and {minutes} minutes left\":{\"msgid\":\"{hours} hours and {minutes} minutes left\",\"msgstr\":[\"\"]},\"{minutes} minutes left\":{\"msgid\":\"{minutes} minutes left\",\"msgstr\":[\"\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"\"]}}}}},{\"locale\":\"zh_CN\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Jack Frost, 2022\",\"Language-Team\":\"Chinese (China) (https://www.transifex.com/nextcloud/teams/64236/zh_CN/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"zh_CN\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nJack Frost, 2022\\n\"},\"msgstr\":[\"Last-Translator: Jack Frost, 2022\\nLanguage-Team: Chinese (China) (https://www.transifex.com/nextcloud/teams/64236/zh_CN/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: zh_CN\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"剩余 {seconds} 秒\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"剩余 {time}\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"还剩几秒\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"添加\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"取消上传\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"估计剩余时间\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"已暂停\"]}}}}},{\"locale\":\"zh_HK\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Café Tango, 2022\",\"Language-Team\":\"Chinese (Hong Kong) (https://www.transifex.com/nextcloud/teams/64236/zh_HK/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"zh_HK\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nCafé Tango, 2022\\n\"},\"msgstr\":[\"Last-Translator: Café Tango, 2022\\nLanguage-Team: Chinese (Hong Kong) (https://www.transifex.com/nextcloud/teams/64236/zh_HK/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: zh_HK\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"剩餘 {seconds} 秒\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"剩餘 {time}\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"還剩幾秒\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"添加\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"取消上傳\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"估計剩餘時間\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"已暫停\"]}}}}},{\"locale\":\"zh_TW\",\"json\":{\"charset\":\"utf-8\",\"headers\":{\"Last-Translator\":\"Tragic Life, 2022\",\"Language-Team\":\"Chinese (Taiwan) (https://www.transifex.com/nextcloud/teams/64236/zh_TW/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",\"Language\":\"zh_TW\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},\"translations\":{\"\":{\"\":{\"msgid\":\"\",\"comments\":{\"translator\":\"\\nTranslators:\\nPin-Hsien Lee, 2022\\nTragic Life, 2022\\n\"},\"msgstr\":[\"Last-Translator: Tragic Life, 2022\\nLanguage-Team: Chinese (Taiwan) (https://www.transifex.com/nextcloud/teams/64236/zh_TW/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: zh_TW\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},\"{seconds} seconds left\":{\"msgid\":\"{seconds} seconds left\",\"msgstr\":[\"剩餘 {seconds} 秒\"]},\"{time} left\":{\"msgid\":\"{time} left\",\"comments\":{\"extracted\":\"time has the format 00:00:00\"},\"msgstr\":[\"剩餘 {time}\"]},\"a few seconds left\":{\"msgid\":\"a few seconds left\",\"msgstr\":[\"還剩幾秒\"]},\"Add\":{\"msgid\":\"Add\",\"msgstr\":[\"新增\"]},\"Cancel uploads\":{\"msgid\":\"Cancel uploads\",\"msgstr\":[\"取消上傳\"]},\"estimating time left\":{\"msgid\":\"estimating time left\",\"msgstr\":[\"估計剩餘時間\"]},\"paused\":{\"msgid\":\"paused\",\"msgstr\":[\"已暫停\"]},\"Upload files\":{\"msgid\":\"Upload files\",\"msgstr\":[\"上傳檔案\"]}}}}}]};\n try {\n if (process) {\n process.env = Object.assign({}, process.env);\n Object.assign(process.env, env);\n return;\n }\n } catch (e) {} // avoid ReferenceError: process is not defined\n globalThis.process = { env:env };\n})();\n\nconst readerLimit = PLimit(1);\nconst reader = new FileReader();\n/**\n * Upload some data to a given path\n */\nconst uploadData = async function (url, data, signal, onUploadProgress = () => { }) {\n if (typeof data === 'function') {\n data = await data();\n }\n return await axios.request({\n method: 'PUT',\n url,\n data,\n signal,\n onUploadProgress,\n });\n};\n/**\n * Get chunk of the file. Doing this on the fly\n * give us a big performance boost and proper\n * garbage collection\n */\nconst getChunk = function (file, start, length) {\n if (!file.type) {\n return Promise.reject(new Error('Unknown file type'));\n }\n // Since we use a global FileReader, we need to only read one chunk at a time\n return readerLimit(() => new Promise((resolve, reject) => {\n reader.onload = () => {\n if (reader.result !== null) {\n resolve(new Blob([reader.result], {\n type: 'application/octet-stream',\n }));\n }\n reject(new Error('Error while reading the file'));\n };\n reader.readAsArrayBuffer(file.slice(start, start + length));\n }));\n};\n/**\n * Create a temporary upload workspace to upload the chunks to\n */\nconst initChunkWorkspace = async function () {\n const chunksWorkspace = generateRemoteUrl(`dav/uploads/${getCurrentUser()?.uid}`);\n const tempWorkspace = `web-file-upload-${crypto.randomBytes(16).toString('hex')}`;\n const url = `${chunksWorkspace}/${tempWorkspace}`;\n await axios.request({\n method: 'MKCOL',\n url,\n });\n return url;\n};\n\nconst getMaxChunksSize = function () {\n const maxChunkSize = global.OC?.appConfig?.files?.max_chunk_size;\n if (maxChunkSize <= 0) {\n return 0;\n }\n // If invalid return default\n if (!Number(maxChunkSize)) {\n return 10 * 1024 * 1024;\n }\n return Number(maxChunkSize);\n};\n\nvar Status$1;\n(function (Status) {\n Status[Status[\"INITIALIZED\"] = 0] = \"INITIALIZED\";\n Status[Status[\"UPLOADING\"] = 1] = \"UPLOADING\";\n Status[Status[\"ASSEMBLING\"] = 2] = \"ASSEMBLING\";\n Status[Status[\"FINISHED\"] = 3] = \"FINISHED\";\n Status[Status[\"CANCELLED\"] = 4] = \"CANCELLED\";\n Status[Status[\"FAILED\"] = 5] = \"FAILED\";\n})(Status$1 || (Status$1 = {}));\nclass Upload$1 {\n _path;\n _isChunked;\n _chunks;\n _size;\n _uploaded = 0;\n _startTime = 0;\n _status = Status$1.INITIALIZED;\n _controller;\n _response = null;\n constructor(path, chunked = false, size) {\n const chunks = getMaxChunksSize() > 0 ? Math.ceil(size / getMaxChunksSize()) : 1;\n this._path = path;\n this._isChunked = chunked && getMaxChunksSize() > 0 && chunks > 1;\n this._chunks = this._isChunked ? chunks : 1;\n this._size = size;\n this._controller = new AbortController();\n }\n get path() {\n return this._path;\n }\n get isChunked() {\n return this._isChunked;\n }\n get chunks() {\n return this._chunks;\n }\n get size() {\n return this._size;\n }\n get uploaded() {\n return this._uploaded;\n }\n get startTime() {\n return this._startTime;\n }\n set response(response) {\n this._response = response;\n }\n get response() {\n return this._response;\n }\n /**\n * Update the uploaded bytes of this upload\n */\n set uploaded(length) {\n if (length >= this._size) {\n this._status = this._isChunked\n ? Status$1.ASSEMBLING\n : Status$1.FINISHED;\n this._uploaded = this._size;\n return;\n }\n this._status = Status$1.UPLOADING;\n this._uploaded = length;\n // If first progress, let's log the start time\n if (this._startTime === 0) {\n this._startTime = new Date().getTime();\n }\n }\n get status() {\n return this._status;\n }\n /**\n * Update this upload status\n */\n set status(status) {\n this._status = status;\n }\n /**\n * Returns the axios cancel token source\n */\n get signal() {\n return this._controller.signal;\n }\n /**\n * Cancel any ongoing requests linked to this upload\n */\n cancel() {\n this._controller.abort();\n this._status = Status$1.CANCELLED;\n }\n}\n\nconst getLogger = user => {\n if (user === null) {\n return getLoggerBuilder()\n .setApp('uploader')\n .build();\n }\n return getLoggerBuilder()\n .setApp('uploader')\n .setUid(user.uid)\n .build();\n};\nvar logger = getLogger(getCurrentUser());\n\nvar Status;\n(function (Status) {\n Status[Status[\"IDLE\"] = 0] = \"IDLE\";\n Status[Status[\"UPLOADING\"] = 1] = \"UPLOADING\";\n Status[Status[\"PAUSED\"] = 2] = \"PAUSED\";\n})(Status || (Status = {}));\nclass Uploader {\n // Initialized via setter in the constructor\n rootFolder;\n destinationFolder;\n _isPublic;\n // Global upload queue\n _uploadQueue = [];\n _jobQueue = new PQueue({ concurrency: 3 });\n _queueSize = 0;\n _queueProgress = 0;\n _queueStatus = Status.IDLE;\n /**\n * Initialize uploader\n *\n * @param {boolean} isPublic are we in public mode ?\n * @param {string} rootFolder the operation root folder\n * @param {string} destinationFolder the context folder to operate, relative to the root folder\n */\n constructor(isPublic = false, rootFolder = `dav/files/${getCurrentUser()?.uid}`, destinationFolder = '/') {\n this._isPublic = isPublic;\n this.root = rootFolder;\n this.destination = destinationFolder;\n logger.debug('Upload workspace initialized', {\n destinationFolder: this.destination,\n rootFolder: this.root,\n isPublic,\n maxChunksSize: getMaxChunksSize(),\n });\n }\n /**\n * Get the upload destination path relative to the root folder\n */\n get destination() {\n return this.destinationFolder;\n }\n /**\n * Set the upload destination path relative to the root folder\n */\n set destination(path) {\n if (typeof path !== 'string' || path === '') {\n this.destinationFolder = '/';\n return;\n }\n if (!path.startsWith('/')) {\n path = `/${path}`;\n }\n this.destinationFolder = path.replace(/\\/$/, '');\n }\n /**\n * Get the root folder\n */\n get root() {\n return this.rootFolder;\n }\n /**\n * Set the root folder\n *\n * @param {string} path should be the remoteUrl path.\n * This method uses the generateRemoteUrl method\n */\n set root(path) {\n if (typeof path !== 'string' || path === '') {\n this.rootFolder = generateRemoteUrl(`dav/files/${getCurrentUser()?.uid}`);\n return;\n }\n if (path.startsWith('http')) {\n throw new Error('The path should be a remote url string. E.g `dav/files/admin`.');\n }\n if (path.startsWith('/')) {\n path = path.slice(1);\n }\n this.rootFolder = generateRemoteUrl(path);\n }\n /**\n * Get the upload queue\n */\n get queue() {\n return this._uploadQueue;\n }\n reset() {\n this._uploadQueue = [];\n this._jobQueue.clear();\n this._queueSize = 0;\n this._queueProgress = 0;\n this._queueStatus = Status.IDLE;\n }\n /**\n * Pause any ongoing upload(s)\n */\n pause() {\n this._jobQueue.pause();\n this._queueStatus = Status.PAUSED;\n }\n /**\n * Resume any pending upload(s)\n */\n start() {\n this._jobQueue.start();\n this._queueStatus = Status.UPLOADING;\n this.updateStats();\n }\n /**\n * Get the upload queue stats\n */\n get info() {\n return {\n size: this._queueSize,\n progress: this._queueProgress,\n status: this._queueStatus,\n };\n }\n updateStats() {\n const size = this._uploadQueue.map(upload => upload.size)\n .reduce((partialSum, a) => partialSum + a, 0);\n const uploaded = this._uploadQueue.map(upload => upload.uploaded)\n .reduce((partialSum, a) => partialSum + a, 0);\n this._queueSize = size;\n this._queueProgress = uploaded;\n // If already paused keep it that way\n if (this._queueStatus === Status.PAUSED) {\n return;\n }\n this._queueStatus = this._jobQueue.size > 0\n ? Status.UPLOADING\n : Status.IDLE;\n }\n /**\n * Upload a file to the given path\n */\n upload(destinationPath, file) {\n const destinationFolder = this.destinationFolder === '/' ? '' : this.destinationFolder;\n const destinationFile = `${this.rootFolder}${destinationFolder}/${destinationPath.replace(/^\\//, '')}`;\n logger.debug(`Uploading ${file.name} to ${destinationFile}`);\n // If manually disabled or if the file is too small\n // TODO: support chunk uploading in public pages\n const maxChunkSize = getMaxChunksSize();\n const disabledChunkUpload = maxChunkSize === 0\n || file.size < maxChunkSize\n || this._isPublic;\n const upload = new Upload$1(destinationFile, !disabledChunkUpload, file.size);\n this._uploadQueue.push(upload);\n this.updateStats();\n // eslint-disable-next-line no-async-promise-executor\n const promise = new PCancelable(async (resolve, reject, onCancel) => {\n // Register cancellation caller\n onCancel(upload.cancel);\n if (!disabledChunkUpload) {\n logger.debug('Initializing chunked upload', { file, upload });\n // Let's initialize a chunk upload\n const tempUrl = await initChunkWorkspace();\n const chunksQueue = [];\n // Generate chunks array\n for (let chunk = 0; chunk < upload.chunks; chunk++) {\n const bufferStart = chunk * maxChunkSize;\n // Don't go further than the file size\n const bufferEnd = Math.min(bufferStart + maxChunkSize, upload.size);\n // Make it a Promise function for better memory management\n const blob = () => getChunk(file, bufferStart, maxChunkSize);\n // Init request queue\n const request = () => {\n return uploadData(`${tempUrl}/${bufferEnd}`, blob, upload.signal, () => this.updateStats())\n // Update upload progress on chunk completion\n .then(() => { upload.uploaded = upload.uploaded + maxChunkSize; })\n .catch((error) => {\n if (!(error instanceof CanceledError)) {\n logger.error(`Chunk ${bufferStart} - ${bufferEnd} uploading failed`);\n upload.status = Status$1.FAILED;\n }\n throw error;\n });\n };\n chunksQueue.push(this._jobQueue.add(request));\n }\n try {\n // Once all chunks are sent, assemble the final file\n await Promise.all(chunksQueue);\n this.updateStats();\n upload.response = await axios.request({\n method: 'MOVE',\n url: `${tempUrl}/.file`,\n headers: {\n Destination: destinationFile,\n },\n });\n this.updateStats();\n upload.status = Status$1.FINISHED;\n logger.debug(`Successfully uploaded ${file.name}`, { file, upload });\n resolve(upload);\n }\n catch (error) {\n if (!(error instanceof CanceledError)) {\n upload.status = Status$1.FAILED;\n reject('Failed assembling the chunks together');\n }\n else {\n upload.status = Status$1.FAILED;\n reject('Upload has been cancelled');\n }\n // Cleaning up temp directory\n axios.request({\n method: 'DELETE',\n url: `${tempUrl}`,\n });\n }\n }\n else {\n logger.debug('Initializing regular upload', { file, upload });\n // Generating upload limit\n const blob = await getChunk(file, 0, upload.size);\n const request = async () => {\n try {\n upload.response = await uploadData(destinationFile, blob, upload.signal, () => this.updateStats());\n // Update progress\n upload.uploaded = upload.size;\n this.updateStats();\n // Resolve\n logger.debug(`Successfully uploaded ${file.name}`, { file, upload });\n resolve(upload);\n }\n catch (error) {\n if (error instanceof CanceledError) {\n upload.status = Status$1.FAILED;\n reject('Upload has been cancelled');\n return;\n }\n upload.status = Status$1.FAILED;\n reject('Failed uploading the file');\n }\n };\n this._jobQueue.add(request);\n this.updateStats();\n }\n // Reset when upload queue is done\n this._jobQueue.onIdle()\n .then(() => this.reset());\n return upload;\n });\n return promise;\n }\n}\n\nvar e=[],t$1=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t$1[u]={}),a=t$1[u]&&t$1[u][s]?t$1[u][s]:t$1[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}\n\nvar css$1 = \".upload-picker {\\n display: inline-flex;\\n align-items: center;\\n height: 44px;\\n}\\n.upload-picker__progress {\\n width: 200px;\\n max-width: 0;\\n transition: max-width var(--animation-quick) ease-in-out;\\n margin-top: 8px;\\n}\\n.upload-picker__progress p {\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n}\\n.upload-picker--uploading .upload-picker__progress {\\n max-width: 200px;\\n margin-right: 20px;\\n margin-left: 8px;\\n}\\n.upload-picker--paused .upload-picker__progress {\\n animation: breathing 3s ease-out infinite normal;\\n}\\n\\n@keyframes breathing {\\n 0% {\\n opacity: 0.5;\\n }\\n 25% {\\n opacity: 1;\\n }\\n 60% {\\n opacity: 0.5;\\n }\\n 100% {\\n opacity: 0.5;\\n }\\n}\";\nn(css$1,{});\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction getAugmentedNamespace(n) {\n var f = n.default;\n\tif (typeof f == \"function\") {\n\t\tvar a = function () {\n\t\t\treturn f.apply(this, arguments);\n\t\t};\n\t\ta.prototype = f.prototype;\n } else a = {};\n Object.defineProperty(a, '__esModule', {value: true});\n\tObject.keys(n).forEach(function (k) {\n\t\tvar d = Object.getOwnPropertyDescriptor(n, k);\n\t\tObject.defineProperty(a, k, d.get ? d : {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn n[k];\n\t\t\t}\n\t\t});\n\t});\n\treturn a;\n}\n\n// @flow\n\n/*::\ntype Options = {\n max?: number,\n min?: number,\n historyTimeConstant?: number,\n autostart?: boolean,\n ignoreSameProgress?: boolean,\n}\n*/\n\nfunction makeLowPassFilter(RC/*: number*/) {\n return function (previousOutput, input, dt) {\n const alpha = dt / (dt + RC);\n return previousOutput + alpha * (input - previousOutput);\n }\n}\n\nfunction def$1/*:: <T>*/(x/*: ?T*/, d/*: T*/)/*: T*/ {\n return (x === undefined || x === null) ? d : x;\n}\n\nfunction makeEta(options/*::?: Options */) {\n options = options || {};\n var max = def$1(options.max, 1);\n var min = def$1(options.min, 0);\n var autostart = def$1(options.autostart, true);\n var ignoreSameProgress = def$1(options.ignoreSameProgress, false);\n\n var rate/*: number | null */ = null;\n var lastTimestamp/*: number | null */ = null;\n var lastProgress/*: number | null */ = null;\n\n var filter = makeLowPassFilter(def$1(options.historyTimeConstant, 2.5));\n\n function start() {\n report(min);\n }\n\n function reset() {\n rate = null;\n lastTimestamp = null;\n lastProgress = null;\n if (autostart) {\n start();\n }\n }\n\n function report(progress /*: number */, timestamp/*::?: number */) {\n if (typeof timestamp !== 'number') {\n timestamp = Date.now();\n }\n\n if (lastTimestamp === timestamp) { return; }\n if (ignoreSameProgress && lastProgress === progress) { return; }\n\n if (lastTimestamp === null || lastProgress === null) {\n lastProgress = progress;\n lastTimestamp = timestamp;\n return;\n }\n\n var deltaProgress = progress - lastProgress;\n var deltaTimestamp = 0.001 * (timestamp - lastTimestamp);\n var currentRate = deltaProgress / deltaTimestamp;\n\n rate = rate === null\n ? currentRate\n : filter(rate, currentRate, deltaTimestamp);\n lastProgress = progress;\n lastTimestamp = timestamp;\n }\n\n function estimate(timestamp/*::?: number*/) {\n if (lastProgress === null) { return Infinity; }\n if (lastProgress >= max) { return 0; }\n if (rate === null) { return Infinity; }\n\n var estimatedTime = (max - lastProgress) / rate;\n if (typeof timestamp === 'number' && typeof lastTimestamp === 'number') {\n estimatedTime -= (timestamp - lastTimestamp) * 0.001;\n }\n return Math.max(0, estimatedTime);\n }\n\n function getRate() {\n return rate === null ? 0 : rate;\n }\n\n return {\n start: start,\n reset: reset,\n report: report,\n estimate: estimate,\n rate: getRate,\n }\n}\n\nvar simpleEta = makeEta;\n\nvar NcActionButton$1 = {exports: {}};\n\nvar vue_runtime_common = {exports: {}};\n\nvar vue_runtime_common_dev;\nvar hasRequiredVue_runtime_common_dev;\n\nfunction requireVue_runtime_common_dev () {\n\tif (hasRequiredVue_runtime_common_dev) return vue_runtime_common_dev;\n\thasRequiredVue_runtime_common_dev = 1;\n\n\tconst emptyObject = Object.freeze({});\r\n\tconst isArray = Array.isArray;\r\n\t// These helpers produce better VM code in JS engines due to their\r\n\t// explicitness and function inlining.\r\n\tfunction isUndef(v) {\r\n\t return v === undefined || v === null;\r\n\t}\r\n\tfunction isDef(v) {\r\n\t return v !== undefined && v !== null;\r\n\t}\r\n\tfunction isTrue(v) {\r\n\t return v === true;\r\n\t}\r\n\tfunction isFalse(v) {\r\n\t return v === false;\r\n\t}\r\n\t/**\r\n\t * Check if value is primitive.\r\n\t */\r\n\tfunction isPrimitive(value) {\r\n\t return (typeof value === 'string' ||\r\n\t typeof value === 'number' ||\r\n\t // $flow-disable-line\r\n\t typeof value === 'symbol' ||\r\n\t typeof value === 'boolean');\r\n\t}\r\n\tfunction isFunction(value) {\r\n\t return typeof value === 'function';\r\n\t}\r\n\t/**\r\n\t * Quick object check - this is primarily used to tell\r\n\t * objects from primitive values when we know the value\r\n\t * is a JSON-compliant type.\r\n\t */\r\n\tfunction isObject(obj) {\r\n\t return obj !== null && typeof obj === 'object';\r\n\t}\r\n\t/**\r\n\t * Get the raw type string of a value, e.g., [object Object].\r\n\t */\r\n\tconst _toString = Object.prototype.toString;\r\n\tfunction toRawType(value) {\r\n\t return _toString.call(value).slice(8, -1);\r\n\t}\r\n\t/**\r\n\t * Strict object type check. Only returns true\r\n\t * for plain JavaScript objects.\r\n\t */\r\n\tfunction isPlainObject(obj) {\r\n\t return _toString.call(obj) === '[object Object]';\r\n\t}\r\n\tfunction isRegExp(v) {\r\n\t return _toString.call(v) === '[object RegExp]';\r\n\t}\r\n\t/**\r\n\t * Check if val is a valid array index.\r\n\t */\r\n\tfunction isValidArrayIndex(val) {\r\n\t const n = parseFloat(String(val));\r\n\t return n >= 0 && Math.floor(n) === n && isFinite(val);\r\n\t}\r\n\tfunction isPromise(val) {\r\n\t return (isDef(val) &&\r\n\t typeof val.then === 'function' &&\r\n\t typeof val.catch === 'function');\r\n\t}\r\n\t/**\r\n\t * Convert a value to a string that is actually rendered.\r\n\t */\r\n\tfunction toString(val) {\r\n\t return val == null\r\n\t ? ''\r\n\t : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\r\n\t ? JSON.stringify(val, null, 2)\r\n\t : String(val);\r\n\t}\r\n\t/**\r\n\t * Convert an input value to a number for persistence.\r\n\t * If the conversion fails, return original string.\r\n\t */\r\n\tfunction toNumber(val) {\r\n\t const n = parseFloat(val);\r\n\t return isNaN(n) ? val : n;\r\n\t}\r\n\t/**\r\n\t * Make a map and return a function for checking if a key\r\n\t * is in that map.\r\n\t */\r\n\tfunction makeMap(str, expectsLowerCase) {\r\n\t const map = Object.create(null);\r\n\t const list = str.split(',');\r\n\t for (let i = 0; i < list.length; i++) {\r\n\t map[list[i]] = true;\r\n\t }\r\n\t return expectsLowerCase ? val => map[val.toLowerCase()] : val => map[val];\r\n\t}\r\n\t/**\r\n\t * Check if a tag is a built-in tag.\r\n\t */\r\n\tconst isBuiltInTag = makeMap('slot,component', true);\r\n\t/**\r\n\t * Check if an attribute is a reserved attribute.\r\n\t */\r\n\tconst isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\r\n\t/**\r\n\t * Remove an item from an array.\r\n\t */\r\n\tfunction remove$2(arr, item) {\r\n\t if (arr.length) {\r\n\t const index = arr.indexOf(item);\r\n\t if (index > -1) {\r\n\t return arr.splice(index, 1);\r\n\t }\r\n\t }\r\n\t}\r\n\t/**\r\n\t * Check whether an object has the property.\r\n\t */\r\n\tconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\tfunction hasOwn(obj, key) {\r\n\t return hasOwnProperty.call(obj, key);\r\n\t}\r\n\t/**\r\n\t * Create a cached version of a pure function.\r\n\t */\r\n\tfunction cached(fn) {\r\n\t const cache = Object.create(null);\r\n\t return function cachedFn(str) {\r\n\t const hit = cache[str];\r\n\t return hit || (cache[str] = fn(str));\r\n\t };\r\n\t}\r\n\t/**\r\n\t * Camelize a hyphen-delimited string.\r\n\t */\r\n\tconst camelizeRE = /-(\\w)/g;\r\n\tconst camelize = cached((str) => {\r\n\t return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : ''));\r\n\t});\r\n\t/**\r\n\t * Capitalize a string.\r\n\t */\r\n\tconst capitalize = cached((str) => {\r\n\t return str.charAt(0).toUpperCase() + str.slice(1);\r\n\t});\r\n\t/**\r\n\t * Hyphenate a camelCase string.\r\n\t */\r\n\tconst hyphenateRE = /\\B([A-Z])/g;\r\n\tconst hyphenate = cached((str) => {\r\n\t return str.replace(hyphenateRE, '-$1').toLowerCase();\r\n\t});\r\n\t/**\r\n\t * Simple bind polyfill for environments that do not support it,\r\n\t * e.g., PhantomJS 1.x. Technically, we don't need this anymore\r\n\t * since native bind is now performant enough in most browsers.\r\n\t * But removing it would mean breaking code that was able to run in\r\n\t * PhantomJS 1.x, so this must be kept for backward compatibility.\r\n\t */\r\n\t/* istanbul ignore next */\r\n\tfunction polyfillBind(fn, ctx) {\r\n\t function boundFn(a) {\r\n\t const l = arguments.length;\r\n\t return l\r\n\t ? l > 1\r\n\t ? fn.apply(ctx, arguments)\r\n\t : fn.call(ctx, a)\r\n\t : fn.call(ctx);\r\n\t }\r\n\t boundFn._length = fn.length;\r\n\t return boundFn;\r\n\t}\r\n\tfunction nativeBind(fn, ctx) {\r\n\t return fn.bind(ctx);\r\n\t}\r\n\t// @ts-expect-error bind cannot be `undefined`\r\n\tconst bind = Function.prototype.bind ? nativeBind : polyfillBind;\r\n\t/**\r\n\t * Convert an Array-like object to a real Array.\r\n\t */\r\n\tfunction toArray(list, start) {\r\n\t start = start || 0;\r\n\t let i = list.length - start;\r\n\t const ret = new Array(i);\r\n\t while (i--) {\r\n\t ret[i] = list[i + start];\r\n\t }\r\n\t return ret;\r\n\t}\r\n\t/**\r\n\t * Mix properties into target object.\r\n\t */\r\n\tfunction extend(to, _from) {\r\n\t for (const key in _from) {\r\n\t to[key] = _from[key];\r\n\t }\r\n\t return to;\r\n\t}\r\n\t/**\r\n\t * Merge an Array of Objects into a single Object.\r\n\t */\r\n\tfunction toObject(arr) {\r\n\t const res = {};\r\n\t for (let i = 0; i < arr.length; i++) {\r\n\t if (arr[i]) {\r\n\t extend(res, arr[i]);\r\n\t }\r\n\t }\r\n\t return res;\r\n\t}\r\n\t/* eslint-disable no-unused-vars */\r\n\t/**\r\n\t * Perform no operation.\r\n\t * Stubbing args to make Flow happy without leaving useless transpiled code\r\n\t * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\r\n\t */\r\n\tfunction noop(a, b, c) { }\r\n\t/**\r\n\t * Always return false.\r\n\t */\r\n\tconst no = (a, b, c) => false;\r\n\t/* eslint-enable no-unused-vars */\r\n\t/**\r\n\t * Return the same value.\r\n\t */\r\n\tconst identity = (_) => _;\r\n\t/**\r\n\t * Check if two values are loosely equal - that is,\r\n\t * if they are plain objects, do they have the same shape?\r\n\t */\r\n\tfunction looseEqual(a, b) {\r\n\t if (a === b)\r\n\t return true;\r\n\t const isObjectA = isObject(a);\r\n\t const isObjectB = isObject(b);\r\n\t if (isObjectA && isObjectB) {\r\n\t try {\r\n\t const isArrayA = Array.isArray(a);\r\n\t const isArrayB = Array.isArray(b);\r\n\t if (isArrayA && isArrayB) {\r\n\t return (a.length === b.length &&\r\n\t a.every((e, i) => {\r\n\t return looseEqual(e, b[i]);\r\n\t }));\r\n\t }\r\n\t else if (a instanceof Date && b instanceof Date) {\r\n\t return a.getTime() === b.getTime();\r\n\t }\r\n\t else if (!isArrayA && !isArrayB) {\r\n\t const keysA = Object.keys(a);\r\n\t const keysB = Object.keys(b);\r\n\t return (keysA.length === keysB.length &&\r\n\t keysA.every(key => {\r\n\t return looseEqual(a[key], b[key]);\r\n\t }));\r\n\t }\r\n\t else {\r\n\t /* istanbul ignore next */\r\n\t return false;\r\n\t }\r\n\t }\r\n\t catch (e) {\r\n\t /* istanbul ignore next */\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (!isObjectA && !isObjectB) {\r\n\t return String(a) === String(b);\r\n\t }\r\n\t else {\r\n\t return false;\r\n\t }\r\n\t}\r\n\t/**\r\n\t * Return the first index at which a loosely equal value can be\r\n\t * found in the array (if value is a plain object, the array must\r\n\t * contain an object of the same shape), or -1 if it is not present.\r\n\t */\r\n\tfunction looseIndexOf(arr, val) {\r\n\t for (let i = 0; i < arr.length; i++) {\r\n\t if (looseEqual(arr[i], val))\r\n\t return i;\r\n\t }\r\n\t return -1;\r\n\t}\r\n\t/**\r\n\t * Ensure a function is called only once.\r\n\t */\r\n\tfunction once(fn) {\r\n\t let called = false;\r\n\t return function () {\r\n\t if (!called) {\r\n\t called = true;\r\n\t fn.apply(this, arguments);\r\n\t }\r\n\t };\r\n\t}\r\n\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is#polyfill\r\n\tfunction hasChanged(x, y) {\r\n\t if (x === y) {\r\n\t return x === 0 && 1 / x !== 1 / y;\r\n\t }\r\n\t else {\r\n\t return x === x || y === y;\r\n\t }\r\n\t}\n\n\tconst SSR_ATTR = 'data-server-rendered';\r\n\tconst ASSET_TYPES = ['component', 'directive', 'filter'];\r\n\tconst LIFECYCLE_HOOKS = [\r\n\t 'beforeCreate',\r\n\t 'created',\r\n\t 'beforeMount',\r\n\t 'mounted',\r\n\t 'beforeUpdate',\r\n\t 'updated',\r\n\t 'beforeDestroy',\r\n\t 'destroyed',\r\n\t 'activated',\r\n\t 'deactivated',\r\n\t 'errorCaptured',\r\n\t 'serverPrefetch',\r\n\t 'renderTracked',\r\n\t 'renderTriggered'\r\n\t];\n\n\tvar config = {\r\n\t /**\r\n\t * Option merge strategies (used in core/util/options)\r\n\t */\r\n\t // $flow-disable-line\r\n\t optionMergeStrategies: Object.create(null),\r\n\t /**\r\n\t * Whether to suppress warnings.\r\n\t */\r\n\t silent: false,\r\n\t /**\r\n\t * Show production mode tip message on boot?\r\n\t */\r\n\t productionTip: true,\r\n\t /**\r\n\t * Whether to enable devtools\r\n\t */\r\n\t devtools: true,\r\n\t /**\r\n\t * Whether to record perf\r\n\t */\r\n\t performance: false,\r\n\t /**\r\n\t * Error handler for watcher errors\r\n\t */\r\n\t errorHandler: null,\r\n\t /**\r\n\t * Warn handler for watcher warns\r\n\t */\r\n\t warnHandler: null,\r\n\t /**\r\n\t * Ignore certain custom elements\r\n\t */\r\n\t ignoredElements: [],\r\n\t /**\r\n\t * Custom user key aliases for v-on\r\n\t */\r\n\t // $flow-disable-line\r\n\t keyCodes: Object.create(null),\r\n\t /**\r\n\t * Check if a tag is reserved so that it cannot be registered as a\r\n\t * component. This is platform-dependent and may be overwritten.\r\n\t */\r\n\t isReservedTag: no,\r\n\t /**\r\n\t * Check if an attribute is reserved so that it cannot be used as a component\r\n\t * prop. This is platform-dependent and may be overwritten.\r\n\t */\r\n\t isReservedAttr: no,\r\n\t /**\r\n\t * Check if a tag is an unknown element.\r\n\t * Platform-dependent.\r\n\t */\r\n\t isUnknownElement: no,\r\n\t /**\r\n\t * Get the namespace of an element\r\n\t */\r\n\t getTagNamespace: noop,\r\n\t /**\r\n\t * Parse the real tag name for the specific platform.\r\n\t */\r\n\t parsePlatformTagName: identity,\r\n\t /**\r\n\t * Check if an attribute must be bound using property, e.g. value\r\n\t * Platform-dependent.\r\n\t */\r\n\t mustUseProp: no,\r\n\t /**\r\n\t * Perform updates asynchronously. Intended to be used by Vue Test Utils\r\n\t * This will significantly reduce performance if set to false.\r\n\t */\r\n\t async: true,\r\n\t /**\r\n\t * Exposed for legacy reasons\r\n\t */\r\n\t _lifecycleHooks: LIFECYCLE_HOOKS\r\n\t};\n\n\t/**\r\n\t * unicode letters used for parsing html tags, component names and property paths.\r\n\t * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\r\n\t * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\r\n\t */\r\n\tconst unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\r\n\t/**\r\n\t * Check if a string starts with $ or _\r\n\t */\r\n\tfunction isReserved(str) {\r\n\t const c = (str + '').charCodeAt(0);\r\n\t return c === 0x24 || c === 0x5f;\r\n\t}\r\n\t/**\r\n\t * Define a property.\r\n\t */\r\n\tfunction def(obj, key, val, enumerable) {\r\n\t Object.defineProperty(obj, key, {\r\n\t value: val,\r\n\t enumerable: !!enumerable,\r\n\t writable: true,\r\n\t configurable: true\r\n\t });\r\n\t}\r\n\t/**\r\n\t * Parse simple path.\r\n\t */\r\n\tconst bailRE = new RegExp(`[^${unicodeRegExp.source}.$_\\\\d]`);\r\n\tfunction parsePath(path) {\r\n\t if (bailRE.test(path)) {\r\n\t return;\r\n\t }\r\n\t const segments = path.split('.');\r\n\t return function (obj) {\r\n\t for (let i = 0; i < segments.length; i++) {\r\n\t if (!obj)\r\n\t return;\r\n\t obj = obj[segments[i]];\r\n\t }\r\n\t return obj;\r\n\t };\r\n\t}\n\n\t// can we use __proto__?\r\n\tconst hasProto = '__proto__' in {};\r\n\t// Browser environment sniffing\r\n\tconst inBrowser = typeof window !== 'undefined';\r\n\tconst UA = inBrowser && window.navigator.userAgent.toLowerCase();\r\n\tconst isIE = UA && /msie|trident/.test(UA);\r\n\tconst isIE9 = UA && UA.indexOf('msie 9.0') > 0;\r\n\tconst isEdge = UA && UA.indexOf('edge/') > 0;\r\n\tUA && UA.indexOf('android') > 0;\r\n\tconst isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);\r\n\tUA && /chrome\\/\\d+/.test(UA) && !isEdge;\r\n\tUA && /phantomjs/.test(UA);\r\n\tconst isFF = UA && UA.match(/firefox\\/(\\d+)/);\r\n\t// Firefox has a \"watch\" function on Object.prototype...\r\n\t// @ts-expect-error firebox support\r\n\tconst nativeWatch = {}.watch;\r\n\tlet supportsPassive = false;\r\n\tif (inBrowser) {\r\n\t try {\r\n\t const opts = {};\r\n\t Object.defineProperty(opts, 'passive', {\r\n\t get() {\r\n\t /* istanbul ignore next */\r\n\t supportsPassive = true;\r\n\t }\r\n\t }); // https://github.com/facebook/flow/issues/285\r\n\t window.addEventListener('test-passive', null, opts);\r\n\t }\r\n\t catch (e) { }\r\n\t}\r\n\t// this needs to be lazy-evaled because vue may be required before\r\n\t// vue-server-renderer can set VUE_ENV\r\n\tlet _isServer;\r\n\tconst isServerRendering = () => {\r\n\t if (_isServer === undefined) {\r\n\t /* istanbul ignore if */\r\n\t if (!inBrowser && typeof commonjsGlobal !== 'undefined') {\r\n\t // detect presence of vue-server-renderer and avoid\r\n\t // Webpack shimming the process\r\n\t _isServer =\r\n\t commonjsGlobal['process'] && commonjsGlobal['process'].env.VUE_ENV === 'server';\r\n\t }\r\n\t else {\r\n\t _isServer = false;\r\n\t }\r\n\t }\r\n\t return _isServer;\r\n\t};\r\n\t// detect devtools\r\n\tconst devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\r\n\t/* istanbul ignore next */\r\n\tfunction isNative(Ctor) {\r\n\t return typeof Ctor === 'function' && /native code/.test(Ctor.toString());\r\n\t}\r\n\tconst hasSymbol = typeof Symbol !== 'undefined' &&\r\n\t isNative(Symbol) &&\r\n\t typeof Reflect !== 'undefined' &&\r\n\t isNative(Reflect.ownKeys);\r\n\tlet _Set; // $flow-disable-line\r\n\t/* istanbul ignore if */ if (typeof Set !== 'undefined' && isNative(Set)) {\r\n\t // use native Set when available.\r\n\t _Set = Set;\r\n\t}\r\n\telse {\r\n\t // a non-standard Set polyfill that only works with primitive keys.\r\n\t _Set = class Set {\r\n\t constructor() {\r\n\t this.set = Object.create(null);\r\n\t }\r\n\t has(key) {\r\n\t return this.set[key] === true;\r\n\t }\r\n\t add(key) {\r\n\t this.set[key] = true;\r\n\t }\r\n\t clear() {\r\n\t this.set = Object.create(null);\r\n\t }\r\n\t };\r\n\t}\n\n\tlet currentInstance = null;\r\n\t/**\r\n\t * This is exposed for compatibility with v3 (e.g. some functions in VueUse\r\n\t * relies on it). Do not use this internally, just use `currentInstance`.\r\n\t *\r\n\t * @internal this function needs manual type declaration because it relies\r\n\t * on previously manually authored types from Vue 2\r\n\t */\r\n\tfunction getCurrentInstance() {\r\n\t return currentInstance && { proxy: currentInstance };\r\n\t}\r\n\t/**\r\n\t * @internal\r\n\t */\r\n\tfunction setCurrentInstance(vm = null) {\r\n\t if (!vm)\r\n\t currentInstance && currentInstance._scope.off();\r\n\t currentInstance = vm;\r\n\t vm && vm._scope.on();\r\n\t}\n\n\t/**\r\n\t * @internal\r\n\t */\r\n\tclass VNode {\r\n\t constructor(tag, data, children, text, elm, context, componentOptions, asyncFactory) {\r\n\t this.tag = tag;\r\n\t this.data = data;\r\n\t this.children = children;\r\n\t this.text = text;\r\n\t this.elm = elm;\r\n\t this.ns = undefined;\r\n\t this.context = context;\r\n\t this.fnContext = undefined;\r\n\t this.fnOptions = undefined;\r\n\t this.fnScopeId = undefined;\r\n\t this.key = data && data.key;\r\n\t this.componentOptions = componentOptions;\r\n\t this.componentInstance = undefined;\r\n\t this.parent = undefined;\r\n\t this.raw = false;\r\n\t this.isStatic = false;\r\n\t this.isRootInsert = true;\r\n\t this.isComment = false;\r\n\t this.isCloned = false;\r\n\t this.isOnce = false;\r\n\t this.asyncFactory = asyncFactory;\r\n\t this.asyncMeta = undefined;\r\n\t this.isAsyncPlaceholder = false;\r\n\t }\r\n\t // DEPRECATED: alias for componentInstance for backwards compat.\r\n\t /* istanbul ignore next */\r\n\t get child() {\r\n\t return this.componentInstance;\r\n\t }\r\n\t}\r\n\tconst createEmptyVNode = (text = '') => {\r\n\t const node = new VNode();\r\n\t node.text = text;\r\n\t node.isComment = true;\r\n\t return node;\r\n\t};\r\n\tfunction createTextVNode(val) {\r\n\t return new VNode(undefined, undefined, undefined, String(val));\r\n\t}\r\n\t// optimized shallow clone\r\n\t// used for static nodes and slot nodes because they may be reused across\r\n\t// multiple renders, cloning them avoids errors when DOM manipulations rely\r\n\t// on their elm reference.\r\n\tfunction cloneVNode(vnode) {\r\n\t const cloned = new VNode(vnode.tag, vnode.data, \r\n\t // #7975\r\n\t // clone children array to avoid mutating original in case of cloning\r\n\t // a child.\r\n\t vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory);\r\n\t cloned.ns = vnode.ns;\r\n\t cloned.isStatic = vnode.isStatic;\r\n\t cloned.key = vnode.key;\r\n\t cloned.isComment = vnode.isComment;\r\n\t cloned.fnContext = vnode.fnContext;\r\n\t cloned.fnOptions = vnode.fnOptions;\r\n\t cloned.fnScopeId = vnode.fnScopeId;\r\n\t cloned.asyncMeta = vnode.asyncMeta;\r\n\t cloned.isCloned = true;\r\n\t return cloned;\r\n\t}\n\n\tlet uid$2 = 0;\r\n\t/**\r\n\t * A dep is an observable that can have multiple\r\n\t * directives subscribing to it.\r\n\t * @internal\r\n\t */\r\n\tclass Dep {\r\n\t constructor() {\r\n\t this.id = uid$2++;\r\n\t this.subs = [];\r\n\t }\r\n\t addSub(sub) {\r\n\t this.subs.push(sub);\r\n\t }\r\n\t removeSub(sub) {\r\n\t remove$2(this.subs, sub);\r\n\t }\r\n\t depend(info) {\r\n\t if (Dep.target) {\r\n\t Dep.target.addDep(this);\r\n\t if (info && Dep.target.onTrack) {\r\n\t Dep.target.onTrack(Object.assign({ effect: Dep.target }, info));\r\n\t }\r\n\t }\r\n\t }\r\n\t notify(info) {\r\n\t // stabilize the subscriber list first\r\n\t const subs = this.subs.slice();\r\n\t if (!config.async) {\r\n\t // subs aren't sorted in scheduler if not running async\r\n\t // we need to sort them now to make sure they fire in correct\r\n\t // order\r\n\t subs.sort((a, b) => a.id - b.id);\r\n\t }\r\n\t for (let i = 0, l = subs.length; i < l; i++) {\r\n\t if (info) {\r\n\t const sub = subs[i];\r\n\t sub.onTrigger &&\r\n\t sub.onTrigger(Object.assign({ effect: subs[i] }, info));\r\n\t }\r\n\t subs[i].update();\r\n\t }\r\n\t }\r\n\t}\r\n\t// The current target watcher being evaluated.\r\n\t// This is globally unique because only one watcher\r\n\t// can be evaluated at a time.\r\n\tDep.target = null;\r\n\tconst targetStack = [];\r\n\tfunction pushTarget(target) {\r\n\t targetStack.push(target);\r\n\t Dep.target = target;\r\n\t}\r\n\tfunction popTarget() {\r\n\t targetStack.pop();\r\n\t Dep.target = targetStack[targetStack.length - 1];\r\n\t}\n\n\t/*\r\n\t * not type checking this file because flow doesn't play well with\r\n\t * dynamically accessing methods on Array prototype\r\n\t */\r\n\tconst arrayProto = Array.prototype;\r\n\tconst arrayMethods = Object.create(arrayProto);\r\n\tconst methodsToPatch = [\r\n\t 'push',\r\n\t 'pop',\r\n\t 'shift',\r\n\t 'unshift',\r\n\t 'splice',\r\n\t 'sort',\r\n\t 'reverse'\r\n\t];\r\n\t/**\r\n\t * Intercept mutating methods and emit events\r\n\t */\r\n\tmethodsToPatch.forEach(function (method) {\r\n\t // cache original method\r\n\t const original = arrayProto[method];\r\n\t def(arrayMethods, method, function mutator(...args) {\r\n\t const result = original.apply(this, args);\r\n\t const ob = this.__ob__;\r\n\t let inserted;\r\n\t switch (method) {\r\n\t case 'push':\r\n\t case 'unshift':\r\n\t inserted = args;\r\n\t break;\r\n\t case 'splice':\r\n\t inserted = args.slice(2);\r\n\t break;\r\n\t }\r\n\t if (inserted)\r\n\t ob.observeArray(inserted);\r\n\t // notify change\r\n\t {\r\n\t ob.dep.notify({\r\n\t type: \"array mutation\" /* TriggerOpTypes.ARRAY_MUTATION */,\r\n\t target: this,\r\n\t key: method\r\n\t });\r\n\t }\r\n\t return result;\r\n\t });\r\n\t});\n\n\tconst arrayKeys = Object.getOwnPropertyNames(arrayMethods);\r\n\tconst NO_INIITIAL_VALUE = {};\r\n\t/**\r\n\t * In some cases we may want to disable observation inside a component's\r\n\t * update computation.\r\n\t */\r\n\tlet shouldObserve = true;\r\n\tfunction toggleObserving(value) {\r\n\t shouldObserve = value;\r\n\t}\r\n\t// ssr mock dep\r\n\tconst mockDep = {\r\n\t notify: noop,\r\n\t depend: noop,\r\n\t addSub: noop,\r\n\t removeSub: noop\r\n\t};\r\n\t/**\r\n\t * Observer class that is attached to each observed\r\n\t * object. Once attached, the observer converts the target\r\n\t * object's property keys into getter/setters that\r\n\t * collect dependencies and dispatch updates.\r\n\t */\r\n\tclass Observer {\r\n\t constructor(value, shallow = false, mock = false) {\r\n\t this.value = value;\r\n\t this.shallow = shallow;\r\n\t this.mock = mock;\r\n\t // this.value = value\r\n\t this.dep = mock ? mockDep : new Dep();\r\n\t this.vmCount = 0;\r\n\t def(value, '__ob__', this);\r\n\t if (isArray(value)) {\r\n\t if (!mock) {\r\n\t if (hasProto) {\r\n\t value.__proto__ = arrayMethods;\r\n\t /* eslint-enable no-proto */\r\n\t }\r\n\t else {\r\n\t for (let i = 0, l = arrayKeys.length; i < l; i++) {\r\n\t const key = arrayKeys[i];\r\n\t def(value, key, arrayMethods[key]);\r\n\t }\r\n\t }\r\n\t }\r\n\t if (!shallow) {\r\n\t this.observeArray(value);\r\n\t }\r\n\t }\r\n\t else {\r\n\t /**\r\n\t * Walk through all properties and convert them into\r\n\t * getter/setters. This method should only be called when\r\n\t * value type is Object.\r\n\t */\r\n\t const keys = Object.keys(value);\r\n\t for (let i = 0; i < keys.length; i++) {\r\n\t const key = keys[i];\r\n\t defineReactive(value, key, NO_INIITIAL_VALUE, undefined, shallow, mock);\r\n\t }\r\n\t }\r\n\t }\r\n\t /**\r\n\t * Observe a list of Array items.\r\n\t */\r\n\t observeArray(value) {\r\n\t for (let i = 0, l = value.length; i < l; i++) {\r\n\t observe(value[i], false, this.mock);\r\n\t }\r\n\t }\r\n\t}\r\n\t// helpers\r\n\t/**\r\n\t * Attempt to create an observer instance for a value,\r\n\t * returns the new observer if successfully observed,\r\n\t * or the existing observer if the value already has one.\r\n\t */\r\n\tfunction observe(value, shallow, ssrMockReactivity) {\r\n\t if (!isObject(value) || isRef(value) || value instanceof VNode) {\r\n\t return;\r\n\t }\r\n\t let ob;\r\n\t if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\r\n\t ob = value.__ob__;\r\n\t }\r\n\t else if (shouldObserve &&\r\n\t (ssrMockReactivity || !isServerRendering()) &&\r\n\t (isArray(value) || isPlainObject(value)) &&\r\n\t Object.isExtensible(value) &&\r\n\t !value.__v_skip /* ReactiveFlags.SKIP */) {\r\n\t ob = new Observer(value, shallow, ssrMockReactivity);\r\n\t }\r\n\t return ob;\r\n\t}\r\n\t/**\r\n\t * Define a reactive property on an Object.\r\n\t */\r\n\tfunction defineReactive(obj, key, val, customSetter, shallow, mock) {\r\n\t const dep = new Dep();\r\n\t const property = Object.getOwnPropertyDescriptor(obj, key);\r\n\t if (property && property.configurable === false) {\r\n\t return;\r\n\t }\r\n\t // cater for pre-defined getter/setters\r\n\t const getter = property && property.get;\r\n\t const setter = property && property.set;\r\n\t if ((!getter || setter) &&\r\n\t (val === NO_INIITIAL_VALUE || arguments.length === 2)) {\r\n\t val = obj[key];\r\n\t }\r\n\t let childOb = !shallow && observe(val, false, mock);\r\n\t Object.defineProperty(obj, key, {\r\n\t enumerable: true,\r\n\t configurable: true,\r\n\t get: function reactiveGetter() {\r\n\t const value = getter ? getter.call(obj) : val;\r\n\t if (Dep.target) {\r\n\t {\r\n\t dep.depend({\r\n\t target: obj,\r\n\t type: \"get\" /* TrackOpTypes.GET */,\r\n\t key\r\n\t });\r\n\t }\r\n\t if (childOb) {\r\n\t childOb.dep.depend();\r\n\t if (isArray(value)) {\r\n\t dependArray(value);\r\n\t }\r\n\t }\r\n\t }\r\n\t return isRef(value) && !shallow ? value.value : value;\r\n\t },\r\n\t set: function reactiveSetter(newVal) {\r\n\t const value = getter ? getter.call(obj) : val;\r\n\t if (!hasChanged(value, newVal)) {\r\n\t return;\r\n\t }\r\n\t if (customSetter) {\r\n\t customSetter();\r\n\t }\r\n\t if (setter) {\r\n\t setter.call(obj, newVal);\r\n\t }\r\n\t else if (getter) {\r\n\t // #7981: for accessor properties without setter\r\n\t return;\r\n\t }\r\n\t else if (!shallow && isRef(value) && !isRef(newVal)) {\r\n\t value.value = newVal;\r\n\t return;\r\n\t }\r\n\t else {\r\n\t val = newVal;\r\n\t }\r\n\t childOb = !shallow && observe(newVal, false, mock);\r\n\t {\r\n\t dep.notify({\r\n\t type: \"set\" /* TriggerOpTypes.SET */,\r\n\t target: obj,\r\n\t key,\r\n\t newValue: newVal,\r\n\t oldValue: value\r\n\t });\r\n\t }\r\n\t }\r\n\t });\r\n\t return dep;\r\n\t}\r\n\tfunction set(target, key, val) {\r\n\t if ((isUndef(target) || isPrimitive(target))) {\r\n\t warn(`Cannot set reactive property on undefined, null, or primitive value: ${target}`);\r\n\t }\r\n\t if (isReadonly(target)) {\r\n\t warn(`Set operation on key \"${key}\" failed: target is readonly.`);\r\n\t return;\r\n\t }\r\n\t const ob = target.__ob__;\r\n\t if (isArray(target) && isValidArrayIndex(key)) {\r\n\t target.length = Math.max(target.length, key);\r\n\t target.splice(key, 1, val);\r\n\t // when mocking for SSR, array methods are not hijacked\r\n\t if (ob && !ob.shallow && ob.mock) {\r\n\t observe(val, false, true);\r\n\t }\r\n\t return val;\r\n\t }\r\n\t if (key in target && !(key in Object.prototype)) {\r\n\t target[key] = val;\r\n\t return val;\r\n\t }\r\n\t if (target._isVue || (ob && ob.vmCount)) {\r\n\t warn('Avoid adding reactive properties to a Vue instance or its root $data ' +\r\n\t 'at runtime - declare it upfront in the data option.');\r\n\t return val;\r\n\t }\r\n\t if (!ob) {\r\n\t target[key] = val;\r\n\t return val;\r\n\t }\r\n\t defineReactive(ob.value, key, val, undefined, ob.shallow, ob.mock);\r\n\t {\r\n\t ob.dep.notify({\r\n\t type: \"add\" /* TriggerOpTypes.ADD */,\r\n\t target: target,\r\n\t key,\r\n\t newValue: val,\r\n\t oldValue: undefined\r\n\t });\r\n\t }\r\n\t return val;\r\n\t}\r\n\tfunction del(target, key) {\r\n\t if ((isUndef(target) || isPrimitive(target))) {\r\n\t warn(`Cannot delete reactive property on undefined, null, or primitive value: ${target}`);\r\n\t }\r\n\t if (isArray(target) && isValidArrayIndex(key)) {\r\n\t target.splice(key, 1);\r\n\t return;\r\n\t }\r\n\t const ob = target.__ob__;\r\n\t if (target._isVue || (ob && ob.vmCount)) {\r\n\t warn('Avoid deleting properties on a Vue instance or its root $data ' +\r\n\t '- just set it to null.');\r\n\t return;\r\n\t }\r\n\t if (isReadonly(target)) {\r\n\t warn(`Delete operation on key \"${key}\" failed: target is readonly.`);\r\n\t return;\r\n\t }\r\n\t if (!hasOwn(target, key)) {\r\n\t return;\r\n\t }\r\n\t delete target[key];\r\n\t if (!ob) {\r\n\t return;\r\n\t }\r\n\t {\r\n\t ob.dep.notify({\r\n\t type: \"delete\" /* TriggerOpTypes.DELETE */,\r\n\t target: target,\r\n\t key\r\n\t });\r\n\t }\r\n\t}\r\n\t/**\r\n\t * Collect dependencies on array elements when the array is touched, since\r\n\t * we cannot intercept array element access like property getters.\r\n\t */\r\n\tfunction dependArray(value) {\r\n\t for (let e, i = 0, l = value.length; i < l; i++) {\r\n\t e = value[i];\r\n\t if (e && e.__ob__) {\r\n\t e.__ob__.dep.depend();\r\n\t }\r\n\t if (isArray(e)) {\r\n\t dependArray(e);\r\n\t }\r\n\t }\r\n\t}\n\n\tfunction reactive(target) {\r\n\t makeReactive(target, false);\r\n\t return target;\r\n\t}\r\n\t/**\r\n\t * Return a shallowly-reactive copy of the original object, where only the root\r\n\t * level properties are reactive. It also does not auto-unwrap refs (even at the\r\n\t * root level).\r\n\t */\r\n\tfunction shallowReactive(target) {\r\n\t makeReactive(target, true);\r\n\t def(target, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\r\n\t return target;\r\n\t}\r\n\tfunction makeReactive(target, shallow) {\r\n\t // if trying to observe a readonly proxy, return the readonly version.\r\n\t if (!isReadonly(target)) {\r\n\t {\r\n\t if (isArray(target)) {\r\n\t warn(`Avoid using Array as root value for ${shallow ? `shallowReactive()` : `reactive()`} as it cannot be tracked in watch() or watchEffect(). Use ${shallow ? `shallowRef()` : `ref()`} instead. This is a Vue-2-only limitation.`);\r\n\t }\r\n\t const existingOb = target && target.__ob__;\r\n\t if (existingOb && existingOb.shallow !== shallow) {\r\n\t warn(`Target is already a ${existingOb.shallow ? `` : `non-`}shallow reactive object, and cannot be converted to ${shallow ? `` : `non-`}shallow.`);\r\n\t }\r\n\t }\r\n\t const ob = observe(target, shallow, isServerRendering() /* ssr mock reactivity */);\r\n\t if (!ob) {\r\n\t if (target == null || isPrimitive(target)) {\r\n\t warn(`value cannot be made reactive: ${String(target)}`);\r\n\t }\r\n\t if (isCollectionType(target)) {\r\n\t warn(`Vue 2 does not support reactive collection types such as Map or Set.`);\r\n\t }\r\n\t }\r\n\t }\r\n\t}\r\n\tfunction isReactive(value) {\r\n\t if (isReadonly(value)) {\r\n\t return isReactive(value[\"__v_raw\" /* ReactiveFlags.RAW */]);\r\n\t }\r\n\t return !!(value && value.__ob__);\r\n\t}\r\n\tfunction isShallow(value) {\r\n\t return !!(value && value.__v_isShallow);\r\n\t}\r\n\tfunction isReadonly(value) {\r\n\t return !!(value && value.__v_isReadonly);\r\n\t}\r\n\tfunction isProxy(value) {\r\n\t return isReactive(value) || isReadonly(value);\r\n\t}\r\n\tfunction toRaw(observed) {\r\n\t const raw = observed && observed[\"__v_raw\" /* ReactiveFlags.RAW */];\r\n\t return raw ? toRaw(raw) : observed;\r\n\t}\r\n\tfunction markRaw(value) {\r\n\t def(value, \"__v_skip\" /* ReactiveFlags.SKIP */, true);\r\n\t return value;\r\n\t}\r\n\t/**\r\n\t * @internal\r\n\t */\r\n\tfunction isCollectionType(value) {\r\n\t const type = toRawType(value);\r\n\t return (type === 'Map' || type === 'WeakMap' || type === 'Set' || type === 'WeakSet');\r\n\t}\n\n\t/**\r\n\t * @internal\r\n\t */\r\n\tconst RefFlag = `__v_isRef`;\r\n\tfunction isRef(r) {\r\n\t return !!(r && r.__v_isRef === true);\r\n\t}\r\n\tfunction ref$1(value) {\r\n\t return createRef(value, false);\r\n\t}\r\n\tfunction shallowRef(value) {\r\n\t return createRef(value, true);\r\n\t}\r\n\tfunction createRef(rawValue, shallow) {\r\n\t if (isRef(rawValue)) {\r\n\t return rawValue;\r\n\t }\r\n\t const ref = {};\r\n\t def(ref, RefFlag, true);\r\n\t def(ref, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, shallow);\r\n\t def(ref, 'dep', defineReactive(ref, 'value', rawValue, null, shallow, isServerRendering()));\r\n\t return ref;\r\n\t}\r\n\tfunction triggerRef(ref) {\r\n\t if (!ref.dep) {\r\n\t warn(`received object is not a triggerable ref.`);\r\n\t }\r\n\t {\r\n\t ref.dep &&\r\n\t ref.dep.notify({\r\n\t type: \"set\" /* TriggerOpTypes.SET */,\r\n\t target: ref,\r\n\t key: 'value'\r\n\t });\r\n\t }\r\n\t}\r\n\tfunction unref(ref) {\r\n\t return isRef(ref) ? ref.value : ref;\r\n\t}\r\n\tfunction proxyRefs(objectWithRefs) {\r\n\t if (isReactive(objectWithRefs)) {\r\n\t return objectWithRefs;\r\n\t }\r\n\t const proxy = {};\r\n\t const keys = Object.keys(objectWithRefs);\r\n\t for (let i = 0; i < keys.length; i++) {\r\n\t proxyWithRefUnwrap(proxy, objectWithRefs, keys[i]);\r\n\t }\r\n\t return proxy;\r\n\t}\r\n\tfunction proxyWithRefUnwrap(target, source, key) {\r\n\t Object.defineProperty(target, key, {\r\n\t enumerable: true,\r\n\t configurable: true,\r\n\t get: () => {\r\n\t const val = source[key];\r\n\t if (isRef(val)) {\r\n\t return val.value;\r\n\t }\r\n\t else {\r\n\t const ob = val && val.__ob__;\r\n\t if (ob)\r\n\t ob.dep.depend();\r\n\t return val;\r\n\t }\r\n\t },\r\n\t set: value => {\r\n\t const oldValue = source[key];\r\n\t if (isRef(oldValue) && !isRef(value)) {\r\n\t oldValue.value = value;\r\n\t }\r\n\t else {\r\n\t source[key] = value;\r\n\t }\r\n\t }\r\n\t });\r\n\t}\r\n\tfunction customRef(factory) {\r\n\t const dep = new Dep();\r\n\t const { get, set } = factory(() => {\r\n\t {\r\n\t dep.depend({\r\n\t target: ref,\r\n\t type: \"get\" /* TrackOpTypes.GET */,\r\n\t key: 'value'\r\n\t });\r\n\t }\r\n\t }, () => {\r\n\t {\r\n\t dep.notify({\r\n\t target: ref,\r\n\t type: \"set\" /* TriggerOpTypes.SET */,\r\n\t key: 'value'\r\n\t });\r\n\t }\r\n\t });\r\n\t const ref = {\r\n\t get value() {\r\n\t return get();\r\n\t },\r\n\t set value(newVal) {\r\n\t set(newVal);\r\n\t }\r\n\t };\r\n\t def(ref, RefFlag, true);\r\n\t return ref;\r\n\t}\r\n\tfunction toRefs(object) {\r\n\t if (!isReactive(object)) {\r\n\t warn(`toRefs() expects a reactive object but received a plain one.`);\r\n\t }\r\n\t const ret = isArray(object) ? new Array(object.length) : {};\r\n\t for (const key in object) {\r\n\t ret[key] = toRef(object, key);\r\n\t }\r\n\t return ret;\r\n\t}\r\n\tfunction toRef(object, key, defaultValue) {\r\n\t const val = object[key];\r\n\t if (isRef(val)) {\r\n\t return val;\r\n\t }\r\n\t const ref = {\r\n\t get value() {\r\n\t const val = object[key];\r\n\t return val === undefined ? defaultValue : val;\r\n\t },\r\n\t set value(newVal) {\r\n\t object[key] = newVal;\r\n\t }\r\n\t };\r\n\t def(ref, RefFlag, true);\r\n\t return ref;\r\n\t}\n\n\tconst rawToReadonlyFlag = `__v_rawToReadonly`;\r\n\tconst rawToShallowReadonlyFlag = `__v_rawToShallowReadonly`;\r\n\tfunction readonly(target) {\r\n\t return createReadonly(target, false);\r\n\t}\r\n\tfunction createReadonly(target, shallow) {\r\n\t if (!isPlainObject(target)) {\r\n\t {\r\n\t if (isArray(target)) {\r\n\t warn(`Vue 2 does not support readonly arrays.`);\r\n\t }\r\n\t else if (isCollectionType(target)) {\r\n\t warn(`Vue 2 does not support readonly collection types such as Map or Set.`);\r\n\t }\r\n\t else {\r\n\t warn(`value cannot be made readonly: ${typeof target}`);\r\n\t }\r\n\t }\r\n\t return target;\r\n\t }\r\n\t // already a readonly object\r\n\t if (isReadonly(target)) {\r\n\t return target;\r\n\t }\r\n\t // already has a readonly proxy\r\n\t const existingFlag = shallow ? rawToShallowReadonlyFlag : rawToReadonlyFlag;\r\n\t const existingProxy = target[existingFlag];\r\n\t if (existingProxy) {\r\n\t return existingProxy;\r\n\t }\r\n\t const proxy = Object.create(Object.getPrototypeOf(target));\r\n\t def(target, existingFlag, proxy);\r\n\t def(proxy, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, true);\r\n\t def(proxy, \"__v_raw\" /* ReactiveFlags.RAW */, target);\r\n\t if (isRef(target)) {\r\n\t def(proxy, RefFlag, true);\r\n\t }\r\n\t if (shallow || isShallow(target)) {\r\n\t def(proxy, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\r\n\t }\r\n\t const keys = Object.keys(target);\r\n\t for (let i = 0; i < keys.length; i++) {\r\n\t defineReadonlyProperty(proxy, target, keys[i], shallow);\r\n\t }\r\n\t return proxy;\r\n\t}\r\n\tfunction defineReadonlyProperty(proxy, target, key, shallow) {\r\n\t Object.defineProperty(proxy, key, {\r\n\t enumerable: true,\r\n\t configurable: true,\r\n\t get() {\r\n\t const val = target[key];\r\n\t return shallow || !isPlainObject(val) ? val : readonly(val);\r\n\t },\r\n\t set() {\r\n\t warn(`Set operation on key \"${key}\" failed: target is readonly.`);\r\n\t }\r\n\t });\r\n\t}\r\n\t/**\r\n\t * Returns a reactive-copy of the original object, where only the root level\r\n\t * properties are readonly, and does NOT unwrap refs nor recursively convert\r\n\t * returned properties.\r\n\t * This is used for creating the props proxy object for stateful components.\r\n\t */\r\n\tfunction shallowReadonly(target) {\r\n\t return createReadonly(target, true);\r\n\t}\n\n\tfunction computed(getterOrOptions, debugOptions) {\r\n\t let getter;\r\n\t let setter;\r\n\t const onlyGetter = isFunction(getterOrOptions);\r\n\t if (onlyGetter) {\r\n\t getter = getterOrOptions;\r\n\t setter = () => {\r\n\t warn('Write operation failed: computed value is readonly');\r\n\t }\r\n\t ;\r\n\t }\r\n\t else {\r\n\t getter = getterOrOptions.get;\r\n\t setter = getterOrOptions.set;\r\n\t }\r\n\t const watcher = isServerRendering()\r\n\t ? null\r\n\t : new Watcher(currentInstance, getter, noop, { lazy: true });\r\n\t if (watcher && debugOptions) {\r\n\t watcher.onTrack = debugOptions.onTrack;\r\n\t watcher.onTrigger = debugOptions.onTrigger;\r\n\t }\r\n\t const ref = {\r\n\t // some libs rely on the presence effect for checking computed refs\r\n\t // from normal refs, but the implementation doesn't matter\r\n\t effect: watcher,\r\n\t get value() {\r\n\t if (watcher) {\r\n\t if (watcher.dirty) {\r\n\t watcher.evaluate();\r\n\t }\r\n\t if (Dep.target) {\r\n\t if (Dep.target.onTrack) {\r\n\t Dep.target.onTrack({\r\n\t effect: Dep.target,\r\n\t target: ref,\r\n\t type: \"get\" /* TrackOpTypes.GET */,\r\n\t key: 'value'\r\n\t });\r\n\t }\r\n\t watcher.depend();\r\n\t }\r\n\t return watcher.value;\r\n\t }\r\n\t else {\r\n\t return getter();\r\n\t }\r\n\t },\r\n\t set value(newVal) {\r\n\t setter(newVal);\r\n\t }\r\n\t };\r\n\t def(ref, RefFlag, true);\r\n\t def(ref, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, onlyGetter);\r\n\t return ref;\r\n\t}\n\n\tconst WATCHER = `watcher`;\r\n\tconst WATCHER_CB = `${WATCHER} callback`;\r\n\tconst WATCHER_GETTER = `${WATCHER} getter`;\r\n\tconst WATCHER_CLEANUP = `${WATCHER} cleanup`;\r\n\t// Simple effect.\r\n\tfunction watchEffect(effect, options) {\r\n\t return doWatch(effect, null, options);\r\n\t}\r\n\tfunction watchPostEffect(effect, options) {\r\n\t return doWatch(effect, null, (Object.assign(Object.assign({}, options), { flush: 'post' }) ));\r\n\t}\r\n\tfunction watchSyncEffect(effect, options) {\r\n\t return doWatch(effect, null, (Object.assign(Object.assign({}, options), { flush: 'sync' }) ));\r\n\t}\r\n\t// initial value for watchers to trigger on undefined initial values\r\n\tconst INITIAL_WATCHER_VALUE = {};\r\n\t// implementation\r\n\tfunction watch(source, cb, options) {\r\n\t if (typeof cb !== 'function') {\r\n\t warn(`\\`watch(fn, options?)\\` signature has been moved to a separate API. ` +\r\n\t `Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only ` +\r\n\t `supports \\`watch(source, cb, options?) signature.`);\r\n\t }\r\n\t return doWatch(source, cb, options);\r\n\t}\r\n\tfunction doWatch(source, cb, { immediate, deep, flush = 'pre', onTrack, onTrigger } = emptyObject) {\r\n\t if (!cb) {\r\n\t if (immediate !== undefined) {\r\n\t warn(`watch() \"immediate\" option is only respected when using the ` +\r\n\t `watch(source, callback, options?) signature.`);\r\n\t }\r\n\t if (deep !== undefined) {\r\n\t warn(`watch() \"deep\" option is only respected when using the ` +\r\n\t `watch(source, callback, options?) signature.`);\r\n\t }\r\n\t }\r\n\t const warnInvalidSource = (s) => {\r\n\t warn(`Invalid watch source: ${s}. A watch source can only be a getter/effect ` +\r\n\t `function, a ref, a reactive object, or an array of these types.`);\r\n\t };\r\n\t const instance = currentInstance;\r\n\t const call = (fn, type, args = null) => invokeWithErrorHandling(fn, null, args, instance, type);\r\n\t let getter;\r\n\t let forceTrigger = false;\r\n\t let isMultiSource = false;\r\n\t if (isRef(source)) {\r\n\t getter = () => source.value;\r\n\t forceTrigger = isShallow(source);\r\n\t }\r\n\t else if (isReactive(source)) {\r\n\t getter = () => {\r\n\t source.__ob__.dep.depend();\r\n\t return source;\r\n\t };\r\n\t deep = true;\r\n\t }\r\n\t else if (isArray(source)) {\r\n\t isMultiSource = true;\r\n\t forceTrigger = source.some(s => isReactive(s) || isShallow(s));\r\n\t getter = () => source.map(s => {\r\n\t if (isRef(s)) {\r\n\t return s.value;\r\n\t }\r\n\t else if (isReactive(s)) {\r\n\t return traverse(s);\r\n\t }\r\n\t else if (isFunction(s)) {\r\n\t return call(s, WATCHER_GETTER);\r\n\t }\r\n\t else {\r\n\t warnInvalidSource(s);\r\n\t }\r\n\t });\r\n\t }\r\n\t else if (isFunction(source)) {\r\n\t if (cb) {\r\n\t // getter with cb\r\n\t getter = () => call(source, WATCHER_GETTER);\r\n\t }\r\n\t else {\r\n\t // no cb -> simple effect\r\n\t getter = () => {\r\n\t if (instance && instance._isDestroyed) {\r\n\t return;\r\n\t }\r\n\t if (cleanup) {\r\n\t cleanup();\r\n\t }\r\n\t return call(source, WATCHER, [onCleanup]);\r\n\t };\r\n\t }\r\n\t }\r\n\t else {\r\n\t getter = noop;\r\n\t warnInvalidSource(source);\r\n\t }\r\n\t if (cb && deep) {\r\n\t const baseGetter = getter;\r\n\t getter = () => traverse(baseGetter());\r\n\t }\r\n\t let cleanup;\r\n\t let onCleanup = (fn) => {\r\n\t cleanup = watcher.onStop = () => {\r\n\t call(fn, WATCHER_CLEANUP);\r\n\t };\r\n\t };\r\n\t // in SSR there is no need to setup an actual effect, and it should be noop\r\n\t // unless it's eager\r\n\t if (isServerRendering()) {\r\n\t // we will also not call the invalidate callback (+ runner is not set up)\r\n\t onCleanup = noop;\r\n\t if (!cb) {\r\n\t getter();\r\n\t }\r\n\t else if (immediate) {\r\n\t call(cb, WATCHER_CB, [\r\n\t getter(),\r\n\t isMultiSource ? [] : undefined,\r\n\t onCleanup\r\n\t ]);\r\n\t }\r\n\t return noop;\r\n\t }\r\n\t const watcher = new Watcher(currentInstance, getter, noop, {\r\n\t lazy: true\r\n\t });\r\n\t watcher.noRecurse = !cb;\r\n\t let oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\r\n\t // overwrite default run\r\n\t watcher.run = () => {\r\n\t if (!watcher.active) {\r\n\t return;\r\n\t }\r\n\t if (cb) {\r\n\t // watch(source, cb)\r\n\t const newValue = watcher.get();\r\n\t if (deep ||\r\n\t forceTrigger ||\r\n\t (isMultiSource\r\n\t ? newValue.some((v, i) => hasChanged(v, oldValue[i]))\r\n\t : hasChanged(newValue, oldValue))) {\r\n\t // cleanup before running cb again\r\n\t if (cleanup) {\r\n\t cleanup();\r\n\t }\r\n\t call(cb, WATCHER_CB, [\r\n\t newValue,\r\n\t // pass undefined as the old value when it's changed for the first time\r\n\t oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\r\n\t onCleanup\r\n\t ]);\r\n\t oldValue = newValue;\r\n\t }\r\n\t }\r\n\t else {\r\n\t // watchEffect\r\n\t watcher.get();\r\n\t }\r\n\t };\r\n\t if (flush === 'sync') {\r\n\t watcher.update = watcher.run;\r\n\t }\r\n\t else if (flush === 'post') {\r\n\t watcher.post = true;\r\n\t watcher.update = () => queueWatcher(watcher);\r\n\t }\r\n\t else {\r\n\t // pre\r\n\t watcher.update = () => {\r\n\t if (instance && instance === currentInstance && !instance._isMounted) {\r\n\t // pre-watcher triggered before\r\n\t const buffer = instance._preWatchers || (instance._preWatchers = []);\r\n\t if (buffer.indexOf(watcher) < 0)\r\n\t buffer.push(watcher);\r\n\t }\r\n\t else {\r\n\t queueWatcher(watcher);\r\n\t }\r\n\t };\r\n\t }\r\n\t {\r\n\t watcher.onTrack = onTrack;\r\n\t watcher.onTrigger = onTrigger;\r\n\t }\r\n\t // initial run\r\n\t if (cb) {\r\n\t if (immediate) {\r\n\t watcher.run();\r\n\t }\r\n\t else {\r\n\t oldValue = watcher.get();\r\n\t }\r\n\t }\r\n\t else if (flush === 'post' && instance) {\r\n\t instance.$once('hook:mounted', () => watcher.get());\r\n\t }\r\n\t else {\r\n\t watcher.get();\r\n\t }\r\n\t return () => {\r\n\t watcher.teardown();\r\n\t };\r\n\t}\n\n\tlet activeEffectScope;\r\n\tclass EffectScope {\r\n\t constructor(detached = false) {\r\n\t /**\r\n\t * @internal\r\n\t */\r\n\t this.active = true;\r\n\t /**\r\n\t * @internal\r\n\t */\r\n\t this.effects = [];\r\n\t /**\r\n\t * @internal\r\n\t */\r\n\t this.cleanups = [];\r\n\t if (!detached && activeEffectScope) {\r\n\t this.parent = activeEffectScope;\r\n\t this.index =\r\n\t (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\r\n\t }\r\n\t }\r\n\t run(fn) {\r\n\t if (this.active) {\r\n\t const currentEffectScope = activeEffectScope;\r\n\t try {\r\n\t activeEffectScope = this;\r\n\t return fn();\r\n\t }\r\n\t finally {\r\n\t activeEffectScope = currentEffectScope;\r\n\t }\r\n\t }\r\n\t else {\r\n\t warn(`cannot run an inactive effect scope.`);\r\n\t }\r\n\t }\r\n\t /**\r\n\t * This should only be called on non-detached scopes\r\n\t * @internal\r\n\t */\r\n\t on() {\r\n\t activeEffectScope = this;\r\n\t }\r\n\t /**\r\n\t * This should only be called on non-detached scopes\r\n\t * @internal\r\n\t */\r\n\t off() {\r\n\t activeEffectScope = this.parent;\r\n\t }\r\n\t stop(fromParent) {\r\n\t if (this.active) {\r\n\t let i, l;\r\n\t for (i = 0, l = this.effects.length; i < l; i++) {\r\n\t this.effects[i].teardown();\r\n\t }\r\n\t for (i = 0, l = this.cleanups.length; i < l; i++) {\r\n\t this.cleanups[i]();\r\n\t }\r\n\t if (this.scopes) {\r\n\t for (i = 0, l = this.scopes.length; i < l; i++) {\r\n\t this.scopes[i].stop(true);\r\n\t }\r\n\t }\r\n\t // nested scope, dereference from parent to avoid memory leaks\r\n\t if (this.parent && !fromParent) {\r\n\t // optimized O(1) removal\r\n\t const last = this.parent.scopes.pop();\r\n\t if (last && last !== this) {\r\n\t this.parent.scopes[this.index] = last;\r\n\t last.index = this.index;\r\n\t }\r\n\t }\r\n\t this.active = false;\r\n\t }\r\n\t }\r\n\t}\r\n\tfunction effectScope(detached) {\r\n\t return new EffectScope(detached);\r\n\t}\r\n\t/**\r\n\t * @internal\r\n\t */\r\n\tfunction recordEffectScope(effect, scope = activeEffectScope) {\r\n\t if (scope && scope.active) {\r\n\t scope.effects.push(effect);\r\n\t }\r\n\t}\r\n\tfunction getCurrentScope() {\r\n\t return activeEffectScope;\r\n\t}\r\n\tfunction onScopeDispose(fn) {\r\n\t if (activeEffectScope) {\r\n\t activeEffectScope.cleanups.push(fn);\r\n\t }\r\n\t else {\r\n\t warn(`onScopeDispose() is called when there is no active effect scope` +\r\n\t ` to be associated with.`);\r\n\t }\r\n\t}\n\n\tfunction provide(key, value) {\r\n\t if (!currentInstance) {\r\n\t {\r\n\t warn(`provide() can only be used inside setup().`);\r\n\t }\r\n\t }\r\n\t else {\r\n\t // TS doesn't allow symbol as index type\r\n\t resolveProvided(currentInstance)[key] = value;\r\n\t }\r\n\t}\r\n\tfunction resolveProvided(vm) {\r\n\t // by default an instance inherits its parent's provides object\r\n\t // but when it needs to provide values of its own, it creates its\r\n\t // own provides object using parent provides object as prototype.\r\n\t // this way in `inject` we can simply look up injections from direct\r\n\t // parent and let the prototype chain do the work.\r\n\t const existing = vm._provided;\r\n\t const parentProvides = vm.$parent && vm.$parent._provided;\r\n\t if (parentProvides === existing) {\r\n\t return (vm._provided = Object.create(parentProvides));\r\n\t }\r\n\t else {\r\n\t return existing;\r\n\t }\r\n\t}\r\n\tfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\r\n\t // fallback to `currentRenderingInstance` so that this can be called in\r\n\t // a functional component\r\n\t const instance = currentInstance;\r\n\t if (instance) {\r\n\t // #2400\r\n\t // to support `app.use` plugins,\r\n\t // fallback to appContext's `provides` if the instance is at root\r\n\t const provides = instance.$parent && instance.$parent._provided;\r\n\t if (provides && key in provides) {\r\n\t // TS doesn't allow symbol as index type\r\n\t return provides[key];\r\n\t }\r\n\t else if (arguments.length > 1) {\r\n\t return treatDefaultAsFactory && isFunction(defaultValue)\r\n\t ? defaultValue.call(instance)\r\n\t : defaultValue;\r\n\t }\r\n\t else {\r\n\t warn(`injection \"${String(key)}\" not found.`);\r\n\t }\r\n\t }\r\n\t else {\r\n\t warn(`inject() can only be used inside setup() or functional components.`);\r\n\t }\r\n\t}\n\n\tconst normalizeEvent = cached((name) => {\r\n\t const passive = name.charAt(0) === '&';\r\n\t name = passive ? name.slice(1) : name;\r\n\t const once = name.charAt(0) === '~'; // Prefixed last, checked first\r\n\t name = once ? name.slice(1) : name;\r\n\t const capture = name.charAt(0) === '!';\r\n\t name = capture ? name.slice(1) : name;\r\n\t return {\r\n\t name,\r\n\t once,\r\n\t capture,\r\n\t passive\r\n\t };\r\n\t});\r\n\tfunction createFnInvoker(fns, vm) {\r\n\t function invoker() {\r\n\t const fns = invoker.fns;\r\n\t if (isArray(fns)) {\r\n\t const cloned = fns.slice();\r\n\t for (let i = 0; i < cloned.length; i++) {\r\n\t invokeWithErrorHandling(cloned[i], null, arguments, vm, `v-on handler`);\r\n\t }\r\n\t }\r\n\t else {\r\n\t // return handler return value for single handlers\r\n\t return invokeWithErrorHandling(fns, null, arguments, vm, `v-on handler`);\r\n\t }\r\n\t }\r\n\t invoker.fns = fns;\r\n\t return invoker;\r\n\t}\r\n\tfunction updateListeners(on, oldOn, add, remove, createOnceHandler, vm) {\r\n\t let name, cur, old, event;\r\n\t for (name in on) {\r\n\t cur = on[name];\r\n\t old = oldOn[name];\r\n\t event = normalizeEvent(name);\r\n\t if (isUndef(cur)) {\r\n\t warn(`Invalid handler for event \"${event.name}\": got ` + String(cur), vm);\r\n\t }\r\n\t else if (isUndef(old)) {\r\n\t if (isUndef(cur.fns)) {\r\n\t cur = on[name] = createFnInvoker(cur, vm);\r\n\t }\r\n\t if (isTrue(event.once)) {\r\n\t cur = on[name] = createOnceHandler(event.name, cur, event.capture);\r\n\t }\r\n\t add(event.name, cur, event.capture, event.passive, event.params);\r\n\t }\r\n\t else if (cur !== old) {\r\n\t old.fns = cur;\r\n\t on[name] = old;\r\n\t }\r\n\t }\r\n\t for (name in oldOn) {\r\n\t if (isUndef(on[name])) {\r\n\t event = normalizeEvent(name);\r\n\t remove(event.name, oldOn[name], event.capture);\r\n\t }\r\n\t }\r\n\t}\n\n\tfunction mergeVNodeHook(def, hookKey, hook) {\r\n\t if (def instanceof VNode) {\r\n\t def = def.data.hook || (def.data.hook = {});\r\n\t }\r\n\t let invoker;\r\n\t const oldHook = def[hookKey];\r\n\t function wrappedHook() {\r\n\t hook.apply(this, arguments);\r\n\t // important: remove merged hook to ensure it's called only once\r\n\t // and prevent memory leak\r\n\t remove$2(invoker.fns, wrappedHook);\r\n\t }\r\n\t if (isUndef(oldHook)) {\r\n\t // no existing hook\r\n\t invoker = createFnInvoker([wrappedHook]);\r\n\t }\r\n\t else {\r\n\t /* istanbul ignore if */\r\n\t if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\r\n\t // already a merged invoker\r\n\t invoker = oldHook;\r\n\t invoker.fns.push(wrappedHook);\r\n\t }\r\n\t else {\r\n\t // existing plain hook\r\n\t invoker = createFnInvoker([oldHook, wrappedHook]);\r\n\t }\r\n\t }\r\n\t invoker.merged = true;\r\n\t def[hookKey] = invoker;\r\n\t}\n\n\tfunction extractPropsFromVNodeData(data, Ctor, tag) {\r\n\t // we are only extracting raw values here.\r\n\t // validation and default values are handled in the child\r\n\t // component itself.\r\n\t const propOptions = Ctor.options.props;\r\n\t if (isUndef(propOptions)) {\r\n\t return;\r\n\t }\r\n\t const res = {};\r\n\t const { attrs, props } = data;\r\n\t if (isDef(attrs) || isDef(props)) {\r\n\t for (const key in propOptions) {\r\n\t const altKey = hyphenate(key);\r\n\t {\r\n\t const keyInLowerCase = key.toLowerCase();\r\n\t if (key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase)) {\r\n\t tip(`Prop \"${keyInLowerCase}\" is passed to component ` +\r\n\t `${formatComponentName(\r\n\t // @ts-expect-error tag is string\r\n\t tag || Ctor)}, but the declared prop name is` +\r\n\t ` \"${key}\". ` +\r\n\t `Note that HTML attributes are case-insensitive and camelCased ` +\r\n\t `props need to use their kebab-case equivalents when using in-DOM ` +\r\n\t `templates. You should probably use \"${altKey}\" instead of \"${key}\".`);\r\n\t }\r\n\t }\r\n\t checkProp(res, props, key, altKey, true) ||\r\n\t checkProp(res, attrs, key, altKey, false);\r\n\t }\r\n\t }\r\n\t return res;\r\n\t}\r\n\tfunction checkProp(res, hash, key, altKey, preserve) {\r\n\t if (isDef(hash)) {\r\n\t if (hasOwn(hash, key)) {\r\n\t res[key] = hash[key];\r\n\t if (!preserve) {\r\n\t delete hash[key];\r\n\t }\r\n\t return true;\r\n\t }\r\n\t else if (hasOwn(hash, altKey)) {\r\n\t res[key] = hash[altKey];\r\n\t if (!preserve) {\r\n\t delete hash[altKey];\r\n\t }\r\n\t return true;\r\n\t }\r\n\t }\r\n\t return false;\r\n\t}\n\n\t// The template compiler attempts to minimize the need for normalization by\r\n\t// statically analyzing the template at compile time.\r\n\t//\r\n\t// For plain HTML markup, normalization can be completely skipped because the\r\n\t// generated render function is guaranteed to return Array<VNode>. There are\r\n\t// two cases where extra normalization is needed:\r\n\t// 1. When the children contains components - because a functional component\r\n\t// may return an Array instead of a single root. In this case, just a simple\r\n\t// normalization is needed - if any child is an Array, we flatten the whole\r\n\t// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\r\n\t// because functional components already normalize their own children.\r\n\tfunction simpleNormalizeChildren(children) {\r\n\t for (let i = 0; i < children.length; i++) {\r\n\t if (isArray(children[i])) {\r\n\t return Array.prototype.concat.apply([], children);\r\n\t }\r\n\t }\r\n\t return children;\r\n\t}\r\n\t// 2. When the children contains constructs that always generated nested Arrays,\r\n\t// e.g. <template>, <slot>, v-for, or when the children is provided by user\r\n\t// with hand-written render functions / JSX. In such cases a full normalization\r\n\t// is needed to cater to all possible types of children values.\r\n\tfunction normalizeChildren(children) {\r\n\t return isPrimitive(children)\r\n\t ? [createTextVNode(children)]\r\n\t : isArray(children)\r\n\t ? normalizeArrayChildren(children)\r\n\t : undefined;\r\n\t}\r\n\tfunction isTextNode(node) {\r\n\t return isDef(node) && isDef(node.text) && isFalse(node.isComment);\r\n\t}\r\n\tfunction normalizeArrayChildren(children, nestedIndex) {\r\n\t const res = [];\r\n\t let i, c, lastIndex, last;\r\n\t for (i = 0; i < children.length; i++) {\r\n\t c = children[i];\r\n\t if (isUndef(c) || typeof c === 'boolean')\r\n\t continue;\r\n\t lastIndex = res.length - 1;\r\n\t last = res[lastIndex];\r\n\t // nested\r\n\t if (isArray(c)) {\r\n\t if (c.length > 0) {\r\n\t c = normalizeArrayChildren(c, `${nestedIndex || ''}_${i}`);\r\n\t // merge adjacent text nodes\r\n\t if (isTextNode(c[0]) && isTextNode(last)) {\r\n\t res[lastIndex] = createTextVNode(last.text + c[0].text);\r\n\t c.shift();\r\n\t }\r\n\t res.push.apply(res, c);\r\n\t }\r\n\t }\r\n\t else if (isPrimitive(c)) {\r\n\t if (isTextNode(last)) {\r\n\t // merge adjacent text nodes\r\n\t // this is necessary for SSR hydration because text nodes are\r\n\t // essentially merged when rendered to HTML strings\r\n\t res[lastIndex] = createTextVNode(last.text + c);\r\n\t }\r\n\t else if (c !== '') {\r\n\t // convert primitive to vnode\r\n\t res.push(createTextVNode(c));\r\n\t }\r\n\t }\r\n\t else {\r\n\t if (isTextNode(c) && isTextNode(last)) {\r\n\t // merge adjacent text nodes\r\n\t res[lastIndex] = createTextVNode(last.text + c.text);\r\n\t }\r\n\t else {\r\n\t // default key for nested array children (likely generated by v-for)\r\n\t if (isTrue(children._isVList) &&\r\n\t isDef(c.tag) &&\r\n\t isUndef(c.key) &&\r\n\t isDef(nestedIndex)) {\r\n\t c.key = `__vlist${nestedIndex}_${i}__`;\r\n\t }\r\n\t res.push(c);\r\n\t }\r\n\t }\r\n\t }\r\n\t return res;\r\n\t}\n\n\t/**\r\n\t * Runtime helper for rendering v-for lists.\r\n\t */\r\n\tfunction renderList(val, render) {\r\n\t let ret = null, i, l, keys, key;\r\n\t if (isArray(val) || typeof val === 'string') {\r\n\t ret = new Array(val.length);\r\n\t for (i = 0, l = val.length; i < l; i++) {\r\n\t ret[i] = render(val[i], i);\r\n\t }\r\n\t }\r\n\t else if (typeof val === 'number') {\r\n\t ret = new Array(val);\r\n\t for (i = 0; i < val; i++) {\r\n\t ret[i] = render(i + 1, i);\r\n\t }\r\n\t }\r\n\t else if (isObject(val)) {\r\n\t if (hasSymbol && val[Symbol.iterator]) {\r\n\t ret = [];\r\n\t const iterator = val[Symbol.iterator]();\r\n\t let result = iterator.next();\r\n\t while (!result.done) {\r\n\t ret.push(render(result.value, ret.length));\r\n\t result = iterator.next();\r\n\t }\r\n\t }\r\n\t else {\r\n\t keys = Object.keys(val);\r\n\t ret = new Array(keys.length);\r\n\t for (i = 0, l = keys.length; i < l; i++) {\r\n\t key = keys[i];\r\n\t ret[i] = render(val[key], key, i);\r\n\t }\r\n\t }\r\n\t }\r\n\t if (!isDef(ret)) {\r\n\t ret = [];\r\n\t }\r\n\t ret._isVList = true;\r\n\t return ret;\r\n\t}\n\n\t/**\r\n\t * Runtime helper for rendering <slot>\r\n\t */\r\n\tfunction renderSlot(name, fallbackRender, props, bindObject) {\r\n\t const scopedSlotFn = this.$scopedSlots[name];\r\n\t let nodes;\r\n\t if (scopedSlotFn) {\r\n\t // scoped slot\r\n\t props = props || {};\r\n\t if (bindObject) {\r\n\t if (!isObject(bindObject)) {\r\n\t warn('slot v-bind without argument expects an Object', this);\r\n\t }\r\n\t props = extend(extend({}, bindObject), props);\r\n\t }\r\n\t nodes =\r\n\t scopedSlotFn(props) ||\r\n\t (isFunction(fallbackRender) ? fallbackRender() : fallbackRender);\r\n\t }\r\n\t else {\r\n\t nodes =\r\n\t this.$slots[name] ||\r\n\t (isFunction(fallbackRender) ? fallbackRender() : fallbackRender);\r\n\t }\r\n\t const target = props && props.slot;\r\n\t if (target) {\r\n\t return this.$createElement('template', { slot: target }, nodes);\r\n\t }\r\n\t else {\r\n\t return nodes;\r\n\t }\r\n\t}\n\n\t/**\r\n\t * Runtime helper for resolving filters\r\n\t */\r\n\tfunction resolveFilter(id) {\r\n\t return resolveAsset(this.$options, 'filters', id, true) || identity;\r\n\t}\n\n\tfunction isKeyNotMatch(expect, actual) {\r\n\t if (isArray(expect)) {\r\n\t return expect.indexOf(actual) === -1;\r\n\t }\r\n\t else {\r\n\t return expect !== actual;\r\n\t }\r\n\t}\r\n\t/**\r\n\t * Runtime helper for checking keyCodes from config.\r\n\t * exposed as Vue.prototype._k\r\n\t * passing in eventKeyName as last argument separately for backwards compat\r\n\t */\r\n\tfunction checkKeyCodes(eventKeyCode, key, builtInKeyCode, eventKeyName, builtInKeyName) {\r\n\t const mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\r\n\t if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\r\n\t return isKeyNotMatch(builtInKeyName, eventKeyName);\r\n\t }\r\n\t else if (mappedKeyCode) {\r\n\t return isKeyNotMatch(mappedKeyCode, eventKeyCode);\r\n\t }\r\n\t else if (eventKeyName) {\r\n\t return hyphenate(eventKeyName) !== key;\r\n\t }\r\n\t return eventKeyCode === undefined;\r\n\t}\n\n\t/**\r\n\t * Runtime helper for merging v-bind=\"object\" into a VNode's data.\r\n\t */\r\n\tfunction bindObjectProps(data, tag, value, asProp, isSync) {\r\n\t if (value) {\r\n\t if (!isObject(value)) {\r\n\t warn('v-bind without argument expects an Object or Array value', this);\r\n\t }\r\n\t else {\r\n\t if (isArray(value)) {\r\n\t value = toObject(value);\r\n\t }\r\n\t let hash;\r\n\t for (const key in value) {\r\n\t if (key === 'class' || key === 'style' || isReservedAttribute(key)) {\r\n\t hash = data;\r\n\t }\r\n\t else {\r\n\t const type = data.attrs && data.attrs.type;\r\n\t hash =\r\n\t asProp || config.mustUseProp(tag, type, key)\r\n\t ? data.domProps || (data.domProps = {})\r\n\t : data.attrs || (data.attrs = {});\r\n\t }\r\n\t const camelizedKey = camelize(key);\r\n\t const hyphenatedKey = hyphenate(key);\r\n\t if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\r\n\t hash[key] = value[key];\r\n\t if (isSync) {\r\n\t const on = data.on || (data.on = {});\r\n\t on[`update:${key}`] = function ($event) {\r\n\t value[key] = $event;\r\n\t };\r\n\t }\r\n\t }\r\n\t }\r\n\t }\r\n\t }\r\n\t return data;\r\n\t}\n\n\t/**\r\n\t * Runtime helper for rendering static trees.\r\n\t */\r\n\tfunction renderStatic(index, isInFor) {\r\n\t const cached = this._staticTrees || (this._staticTrees = []);\r\n\t let tree = cached[index];\r\n\t // if has already-rendered static tree and not inside v-for,\r\n\t // we can reuse the same tree.\r\n\t if (tree && !isInFor) {\r\n\t return tree;\r\n\t }\r\n\t // otherwise, render a fresh tree.\r\n\t tree = cached[index] = this.$options.staticRenderFns[index].call(this._renderProxy, this._c, this // for render fns generated for functional component templates\r\n\t );\r\n\t markStatic(tree, `__static__${index}`, false);\r\n\t return tree;\r\n\t}\r\n\t/**\r\n\t * Runtime helper for v-once.\r\n\t * Effectively it means marking the node as static with a unique key.\r\n\t */\r\n\tfunction markOnce(tree, index, key) {\r\n\t markStatic(tree, `__once__${index}${key ? `_${key}` : ``}`, true);\r\n\t return tree;\r\n\t}\r\n\tfunction markStatic(tree, key, isOnce) {\r\n\t if (isArray(tree)) {\r\n\t for (let i = 0; i < tree.length; i++) {\r\n\t if (tree[i] && typeof tree[i] !== 'string') {\r\n\t markStaticNode(tree[i], `${key}_${i}`, isOnce);\r\n\t }\r\n\t }\r\n\t }\r\n\t else {\r\n\t markStaticNode(tree, key, isOnce);\r\n\t }\r\n\t}\r\n\tfunction markStaticNode(node, key, isOnce) {\r\n\t node.isStatic = true;\r\n\t node.key = key;\r\n\t node.isOnce = isOnce;\r\n\t}\n\n\tfunction bindObjectListeners(data, value) {\r\n\t if (value) {\r\n\t if (!isPlainObject(value)) {\r\n\t warn('v-on without argument expects an Object value', this);\r\n\t }\r\n\t else {\r\n\t const on = (data.on = data.on ? extend({}, data.on) : {});\r\n\t for (const key in value) {\r\n\t const existing = on[key];\r\n\t const ours = value[key];\r\n\t on[key] = existing ? [].concat(existing, ours) : ours;\r\n\t }\r\n\t }\r\n\t }\r\n\t return data;\r\n\t}\n\n\tfunction resolveScopedSlots(fns, res, \r\n\t// the following are added in 2.6\r\n\thasDynamicKeys, contentHashKey) {\r\n\t res = res || { $stable: !hasDynamicKeys };\r\n\t for (let i = 0; i < fns.length; i++) {\r\n\t const slot = fns[i];\r\n\t if (isArray(slot)) {\r\n\t resolveScopedSlots(slot, res, hasDynamicKeys);\r\n\t }\r\n\t else if (slot) {\r\n\t // marker for reverse proxying v-slot without scope on this.$slots\r\n\t // @ts-expect-error\r\n\t if (slot.proxy) {\r\n\t // @ts-expect-error\r\n\t slot.fn.proxy = true;\r\n\t }\r\n\t res[slot.key] = slot.fn;\r\n\t }\r\n\t }\r\n\t if (contentHashKey) {\r\n\t res.$key = contentHashKey;\r\n\t }\r\n\t return res;\r\n\t}\n\n\t// helper to process dynamic keys for dynamic arguments in v-bind and v-on.\r\n\tfunction bindDynamicKeys(baseObj, values) {\r\n\t for (let i = 0; i < values.length; i += 2) {\r\n\t const key = values[i];\r\n\t if (typeof key === 'string' && key) {\r\n\t baseObj[values[i]] = values[i + 1];\r\n\t }\r\n\t else if (key !== '' && key !== null) {\r\n\t // null is a special value for explicitly removing a binding\r\n\t warn(`Invalid value for dynamic directive argument (expected string or null): ${key}`, this);\r\n\t }\r\n\t }\r\n\t return baseObj;\r\n\t}\r\n\t// helper to dynamically append modifier runtime markers to event names.\r\n\t// ensure only append when value is already string, otherwise it will be cast\r\n\t// to string and cause the type check to miss.\r\n\tfunction prependModifier(value, symbol) {\r\n\t return typeof value === 'string' ? symbol + value : value;\r\n\t}\n\n\tfunction installRenderHelpers(target) {\r\n\t target._o = markOnce;\r\n\t target._n = toNumber;\r\n\t target._s = toString;\r\n\t target._l = renderList;\r\n\t target._t = renderSlot;\r\n\t target._q = looseEqual;\r\n\t target._i = looseIndexOf;\r\n\t target._m = renderStatic;\r\n\t target._f = resolveFilter;\r\n\t target._k = checkKeyCodes;\r\n\t target._b = bindObjectProps;\r\n\t target._v = createTextVNode;\r\n\t target._e = createEmptyVNode;\r\n\t target._u = resolveScopedSlots;\r\n\t target._g = bindObjectListeners;\r\n\t target._d = bindDynamicKeys;\r\n\t target._p = prependModifier;\r\n\t}\n\n\t/**\r\n\t * Runtime helper for resolving raw children VNodes into a slot object.\r\n\t */\r\n\tfunction resolveSlots(children, context) {\r\n\t if (!children || !children.length) {\r\n\t return {};\r\n\t }\r\n\t const slots = {};\r\n\t for (let i = 0, l = children.length; i < l; i++) {\r\n\t const child = children[i];\r\n\t const data = child.data;\r\n\t // remove slot attribute if the node is resolved as a Vue slot node\r\n\t if (data && data.attrs && data.attrs.slot) {\r\n\t delete data.attrs.slot;\r\n\t }\r\n\t // named slots should only be respected if the vnode was rendered in the\r\n\t // same context.\r\n\t if ((child.context === context || child.fnContext === context) &&\r\n\t data &&\r\n\t data.slot != null) {\r\n\t const name = data.slot;\r\n\t const slot = slots[name] || (slots[name] = []);\r\n\t if (child.tag === 'template') {\r\n\t slot.push.apply(slot, child.children || []);\r\n\t }\r\n\t else {\r\n\t slot.push(child);\r\n\t }\r\n\t }\r\n\t else {\r\n\t (slots.default || (slots.default = [])).push(child);\r\n\t }\r\n\t }\r\n\t // ignore slots that contains only whitespace\r\n\t for (const name in slots) {\r\n\t if (slots[name].every(isWhitespace)) {\r\n\t delete slots[name];\r\n\t }\r\n\t }\r\n\t return slots;\r\n\t}\r\n\tfunction isWhitespace(node) {\r\n\t return (node.isComment && !node.asyncFactory) || node.text === ' ';\r\n\t}\n\n\tfunction isAsyncPlaceholder(node) {\r\n\t // @ts-expect-error not really boolean type\r\n\t return node.isComment && node.asyncFactory;\r\n\t}\n\n\tfunction normalizeScopedSlots(ownerVm, scopedSlots, normalSlots, prevScopedSlots) {\r\n\t let res;\r\n\t const hasNormalSlots = Object.keys(normalSlots).length > 0;\r\n\t const isStable = scopedSlots ? !!scopedSlots.$stable : !hasNormalSlots;\r\n\t const key = scopedSlots && scopedSlots.$key;\r\n\t if (!scopedSlots) {\r\n\t res = {};\r\n\t }\r\n\t else if (scopedSlots._normalized) {\r\n\t // fast path 1: child component re-render only, parent did not change\r\n\t return scopedSlots._normalized;\r\n\t }\r\n\t else if (isStable &&\r\n\t prevScopedSlots &&\r\n\t prevScopedSlots !== emptyObject &&\r\n\t key === prevScopedSlots.$key &&\r\n\t !hasNormalSlots &&\r\n\t !prevScopedSlots.$hasNormal) {\r\n\t // fast path 2: stable scoped slots w/ no normal slots to proxy,\r\n\t // only need to normalize once\r\n\t return prevScopedSlots;\r\n\t }\r\n\t else {\r\n\t res = {};\r\n\t for (const key in scopedSlots) {\r\n\t if (scopedSlots[key] && key[0] !== '$') {\r\n\t res[key] = normalizeScopedSlot(ownerVm, normalSlots, key, scopedSlots[key]);\r\n\t }\r\n\t }\r\n\t }\r\n\t // expose normal slots on scopedSlots\r\n\t for (const key in normalSlots) {\r\n\t if (!(key in res)) {\r\n\t res[key] = proxyNormalSlot(normalSlots, key);\r\n\t }\r\n\t }\r\n\t // avoriaz seems to mock a non-extensible $scopedSlots object\r\n\t // and when that is passed down this would cause an error\r\n\t if (scopedSlots && Object.isExtensible(scopedSlots)) {\r\n\t scopedSlots._normalized = res;\r\n\t }\r\n\t def(res, '$stable', isStable);\r\n\t def(res, '$key', key);\r\n\t def(res, '$hasNormal', hasNormalSlots);\r\n\t return res;\r\n\t}\r\n\tfunction normalizeScopedSlot(vm, normalSlots, key, fn) {\r\n\t const normalized = function () {\r\n\t const cur = currentInstance;\r\n\t setCurrentInstance(vm);\r\n\t let res = arguments.length ? fn.apply(null, arguments) : fn({});\r\n\t res =\r\n\t res && typeof res === 'object' && !isArray(res)\r\n\t ? [res] // single vnode\r\n\t : normalizeChildren(res);\r\n\t const vnode = res && res[0];\r\n\t setCurrentInstance(cur);\r\n\t return res &&\r\n\t (!vnode ||\r\n\t (res.length === 1 && vnode.isComment && !isAsyncPlaceholder(vnode))) // #9658, #10391\r\n\t ? undefined\r\n\t : res;\r\n\t };\r\n\t // this is a slot using the new v-slot syntax without scope. although it is\r\n\t // compiled as a scoped slot, render fn users would expect it to be present\r\n\t // on this.$slots because the usage is semantically a normal slot.\r\n\t if (fn.proxy) {\r\n\t Object.defineProperty(normalSlots, key, {\r\n\t get: normalized,\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t }\r\n\t return normalized;\r\n\t}\r\n\tfunction proxyNormalSlot(slots, key) {\r\n\t return () => slots[key];\r\n\t}\n\n\tfunction initSetup(vm) {\r\n\t const options = vm.$options;\r\n\t const setup = options.setup;\r\n\t if (setup) {\r\n\t const ctx = (vm._setupContext = createSetupContext(vm));\r\n\t setCurrentInstance(vm);\r\n\t pushTarget();\r\n\t const setupResult = invokeWithErrorHandling(setup, null, [vm._props || shallowReactive({}), ctx], vm, `setup`);\r\n\t popTarget();\r\n\t setCurrentInstance();\r\n\t if (isFunction(setupResult)) {\r\n\t // render function\r\n\t // @ts-ignore\r\n\t options.render = setupResult;\r\n\t }\r\n\t else if (isObject(setupResult)) {\r\n\t // bindings\r\n\t if (setupResult instanceof VNode) {\r\n\t warn(`setup() should not return VNodes directly - ` +\r\n\t `return a render function instead.`);\r\n\t }\r\n\t vm._setupState = setupResult;\r\n\t // __sfc indicates compiled bindings from <script setup>\r\n\t if (!setupResult.__sfc) {\r\n\t for (const key in setupResult) {\r\n\t if (!isReserved(key)) {\r\n\t proxyWithRefUnwrap(vm, setupResult, key);\r\n\t }\r\n\t else {\r\n\t warn(`Avoid using variables that start with _ or $ in setup().`);\r\n\t }\r\n\t }\r\n\t }\r\n\t else {\r\n\t // exposed for compiled render fn\r\n\t const proxy = (vm._setupProxy = {});\r\n\t for (const key in setupResult) {\r\n\t if (key !== '__sfc') {\r\n\t proxyWithRefUnwrap(proxy, setupResult, key);\r\n\t }\r\n\t }\r\n\t }\r\n\t }\r\n\t else if (setupResult !== undefined) {\r\n\t warn(`setup() should return an object. Received: ${setupResult === null ? 'null' : typeof setupResult}`);\r\n\t }\r\n\t }\r\n\t}\r\n\tfunction createSetupContext(vm) {\r\n\t let exposeCalled = false;\r\n\t return {\r\n\t get attrs() {\r\n\t if (!vm._attrsProxy) {\r\n\t const proxy = (vm._attrsProxy = {});\r\n\t def(proxy, '_v_attr_proxy', true);\r\n\t syncSetupProxy(proxy, vm.$attrs, emptyObject, vm, '$attrs');\r\n\t }\r\n\t return vm._attrsProxy;\r\n\t },\r\n\t get listeners() {\r\n\t if (!vm._listenersProxy) {\r\n\t const proxy = (vm._listenersProxy = {});\r\n\t syncSetupProxy(proxy, vm.$listeners, emptyObject, vm, '$listeners');\r\n\t }\r\n\t return vm._listenersProxy;\r\n\t },\r\n\t get slots() {\r\n\t return initSlotsProxy(vm);\r\n\t },\r\n\t emit: bind(vm.$emit, vm),\r\n\t expose(exposed) {\r\n\t {\r\n\t if (exposeCalled) {\r\n\t warn(`expose() should be called only once per setup().`, vm);\r\n\t }\r\n\t exposeCalled = true;\r\n\t }\r\n\t if (exposed) {\r\n\t Object.keys(exposed).forEach(key => proxyWithRefUnwrap(vm, exposed, key));\r\n\t }\r\n\t }\r\n\t };\r\n\t}\r\n\tfunction syncSetupProxy(to, from, prev, instance, type) {\r\n\t let changed = false;\r\n\t for (const key in from) {\r\n\t if (!(key in to)) {\r\n\t changed = true;\r\n\t defineProxyAttr(to, key, instance, type);\r\n\t }\r\n\t else if (from[key] !== prev[key]) {\r\n\t changed = true;\r\n\t }\r\n\t }\r\n\t for (const key in to) {\r\n\t if (!(key in from)) {\r\n\t changed = true;\r\n\t delete to[key];\r\n\t }\r\n\t }\r\n\t return changed;\r\n\t}\r\n\tfunction defineProxyAttr(proxy, key, instance, type) {\r\n\t Object.defineProperty(proxy, key, {\r\n\t enumerable: true,\r\n\t configurable: true,\r\n\t get() {\r\n\t return instance[type][key];\r\n\t }\r\n\t });\r\n\t}\r\n\tfunction initSlotsProxy(vm) {\r\n\t if (!vm._slotsProxy) {\r\n\t syncSetupSlots((vm._slotsProxy = {}), vm.$scopedSlots);\r\n\t }\r\n\t return vm._slotsProxy;\r\n\t}\r\n\tfunction syncSetupSlots(to, from) {\r\n\t for (const key in from) {\r\n\t to[key] = from[key];\r\n\t }\r\n\t for (const key in to) {\r\n\t if (!(key in from)) {\r\n\t delete to[key];\r\n\t }\r\n\t }\r\n\t}\r\n\t/**\r\n\t * @internal use manual type def because public setup context type relies on\r\n\t * legacy VNode types\r\n\t */\r\n\tfunction useSlots() {\r\n\t return getContext().slots;\r\n\t}\r\n\t/**\r\n\t * @internal use manual type def because public setup context type relies on\r\n\t * legacy VNode types\r\n\t */\r\n\tfunction useAttrs() {\r\n\t return getContext().attrs;\r\n\t}\r\n\t/**\r\n\t * Vue 2 only\r\n\t * @internal use manual type def because public setup context type relies on\r\n\t * legacy VNode types\r\n\t */\r\n\tfunction useListeners() {\r\n\t return getContext().listeners;\r\n\t}\r\n\tfunction getContext() {\r\n\t if (!currentInstance) {\r\n\t warn(`useContext() called without active instance.`);\r\n\t }\r\n\t const vm = currentInstance;\r\n\t return vm._setupContext || (vm._setupContext = createSetupContext(vm));\r\n\t}\r\n\t/**\r\n\t * Runtime helper for merging default declarations. Imported by compiled code\r\n\t * only.\r\n\t * @internal\r\n\t */\r\n\tfunction mergeDefaults(raw, defaults) {\r\n\t const props = isArray(raw)\r\n\t ? raw.reduce((normalized, p) => ((normalized[p] = {}), normalized), {})\r\n\t : raw;\r\n\t for (const key in defaults) {\r\n\t const opt = props[key];\r\n\t if (opt) {\r\n\t if (isArray(opt) || isFunction(opt)) {\r\n\t props[key] = { type: opt, default: defaults[key] };\r\n\t }\r\n\t else {\r\n\t opt.default = defaults[key];\r\n\t }\r\n\t }\r\n\t else if (opt === null) {\r\n\t props[key] = { default: defaults[key] };\r\n\t }\r\n\t else {\r\n\t warn(`props default key \"${key}\" has no corresponding declaration.`);\r\n\t }\r\n\t }\r\n\t return props;\r\n\t}\n\n\tfunction initRender(vm) {\r\n\t vm._vnode = null; // the root of the child tree\r\n\t vm._staticTrees = null; // v-once cached trees\r\n\t const options = vm.$options;\r\n\t const parentVnode = (vm.$vnode = options._parentVnode); // the placeholder node in parent tree\r\n\t const renderContext = parentVnode && parentVnode.context;\r\n\t vm.$slots = resolveSlots(options._renderChildren, renderContext);\r\n\t vm.$scopedSlots = parentVnode\r\n\t ? normalizeScopedSlots(vm.$parent, parentVnode.data.scopedSlots, vm.$slots)\r\n\t : emptyObject;\r\n\t // bind the createElement fn to this instance\r\n\t // so that we get proper render context inside it.\r\n\t // args order: tag, data, children, normalizationType, alwaysNormalize\r\n\t // internal version is used by render functions compiled from templates\r\n\t // @ts-expect-error\r\n\t vm._c = (a, b, c, d) => createElement$1(vm, a, b, c, d, false);\r\n\t // normalization is always applied for the public version, used in\r\n\t // user-written render functions.\r\n\t // @ts-expect-error\r\n\t vm.$createElement = (a, b, c, d) => createElement$1(vm, a, b, c, d, true);\r\n\t // $attrs & $listeners are exposed for easier HOC creation.\r\n\t // they need to be reactive so that HOCs using them are always updated\r\n\t const parentData = parentVnode && parentVnode.data;\r\n\t /* istanbul ignore else */\r\n\t {\r\n\t defineReactive(vm, '$attrs', (parentData && parentData.attrs) || emptyObject, () => {\r\n\t !isUpdatingChildComponent && warn(`$attrs is readonly.`, vm);\r\n\t }, true);\r\n\t defineReactive(vm, '$listeners', options._parentListeners || emptyObject, () => {\r\n\t !isUpdatingChildComponent && warn(`$listeners is readonly.`, vm);\r\n\t }, true);\r\n\t }\r\n\t}\r\n\tlet currentRenderingInstance = null;\r\n\tfunction renderMixin(Vue) {\r\n\t // install runtime convenience helpers\r\n\t installRenderHelpers(Vue.prototype);\r\n\t Vue.prototype.$nextTick = function (fn) {\r\n\t return nextTick(fn, this);\r\n\t };\r\n\t Vue.prototype._render = function () {\r\n\t const vm = this;\r\n\t const { render, _parentVnode } = vm.$options;\r\n\t if (_parentVnode && vm._isMounted) {\r\n\t vm.$scopedSlots = normalizeScopedSlots(vm.$parent, _parentVnode.data.scopedSlots, vm.$slots, vm.$scopedSlots);\r\n\t if (vm._slotsProxy) {\r\n\t syncSetupSlots(vm._slotsProxy, vm.$scopedSlots);\r\n\t }\r\n\t }\r\n\t // set parent vnode. this allows render functions to have access\r\n\t // to the data on the placeholder node.\r\n\t vm.$vnode = _parentVnode;\r\n\t // render self\r\n\t let vnode;\r\n\t try {\r\n\t // There's no need to maintain a stack because all render fns are called\r\n\t // separately from one another. Nested component's render fns are called\r\n\t // when parent component is patched.\r\n\t setCurrentInstance(vm);\r\n\t currentRenderingInstance = vm;\r\n\t vnode = render.call(vm._renderProxy, vm.$createElement);\r\n\t }\r\n\t catch (e) {\r\n\t handleError(e, vm, `render`);\r\n\t // return error render result,\r\n\t // or previous vnode to prevent render error causing blank component\r\n\t /* istanbul ignore else */\r\n\t if (vm.$options.renderError) {\r\n\t try {\r\n\t vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\r\n\t }\r\n\t catch (e) {\r\n\t handleError(e, vm, `renderError`);\r\n\t vnode = vm._vnode;\r\n\t }\r\n\t }\r\n\t else {\r\n\t vnode = vm._vnode;\r\n\t }\r\n\t }\r\n\t finally {\r\n\t currentRenderingInstance = null;\r\n\t setCurrentInstance();\r\n\t }\r\n\t // if the returned array contains only a single node, allow it\r\n\t if (isArray(vnode) && vnode.length === 1) {\r\n\t vnode = vnode[0];\r\n\t }\r\n\t // return empty vnode in case the render function errored out\r\n\t if (!(vnode instanceof VNode)) {\r\n\t if (isArray(vnode)) {\r\n\t warn('Multiple root nodes returned from render function. Render function ' +\r\n\t 'should return a single root node.', vm);\r\n\t }\r\n\t vnode = createEmptyVNode();\r\n\t }\r\n\t // set parent\r\n\t vnode.parent = _parentVnode;\r\n\t return vnode;\r\n\t };\r\n\t}\n\n\tfunction ensureCtor(comp, base) {\r\n\t if (comp.__esModule || (hasSymbol && comp[Symbol.toStringTag] === 'Module')) {\r\n\t comp = comp.default;\r\n\t }\r\n\t return isObject(comp) ? base.extend(comp) : comp;\r\n\t}\r\n\tfunction createAsyncPlaceholder(factory, data, context, children, tag) {\r\n\t const node = createEmptyVNode();\r\n\t node.asyncFactory = factory;\r\n\t node.asyncMeta = { data, context, children, tag };\r\n\t return node;\r\n\t}\r\n\tfunction resolveAsyncComponent(factory, baseCtor) {\r\n\t if (isTrue(factory.error) && isDef(factory.errorComp)) {\r\n\t return factory.errorComp;\r\n\t }\r\n\t if (isDef(factory.resolved)) {\r\n\t return factory.resolved;\r\n\t }\r\n\t const owner = currentRenderingInstance;\r\n\t if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\r\n\t // already pending\r\n\t factory.owners.push(owner);\r\n\t }\r\n\t if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\r\n\t return factory.loadingComp;\r\n\t }\r\n\t if (owner && !isDef(factory.owners)) {\r\n\t const owners = (factory.owners = [owner]);\r\n\t let sync = true;\r\n\t let timerLoading = null;\r\n\t let timerTimeout = null;\r\n\t owner.$on('hook:destroyed', () => remove$2(owners, owner));\r\n\t const forceRender = (renderCompleted) => {\r\n\t for (let i = 0, l = owners.length; i < l; i++) {\r\n\t owners[i].$forceUpdate();\r\n\t }\r\n\t if (renderCompleted) {\r\n\t owners.length = 0;\r\n\t if (timerLoading !== null) {\r\n\t clearTimeout(timerLoading);\r\n\t timerLoading = null;\r\n\t }\r\n\t if (timerTimeout !== null) {\r\n\t clearTimeout(timerTimeout);\r\n\t timerTimeout = null;\r\n\t }\r\n\t }\r\n\t };\r\n\t const resolve = once((res) => {\r\n\t // cache resolved\r\n\t factory.resolved = ensureCtor(res, baseCtor);\r\n\t // invoke callbacks only if this is not a synchronous resolve\r\n\t // (async resolves are shimmed as synchronous during SSR)\r\n\t if (!sync) {\r\n\t forceRender(true);\r\n\t }\r\n\t else {\r\n\t owners.length = 0;\r\n\t }\r\n\t });\r\n\t const reject = once(reason => {\r\n\t warn(`Failed to resolve async component: ${String(factory)}` +\r\n\t (reason ? `\\nReason: ${reason}` : ''));\r\n\t if (isDef(factory.errorComp)) {\r\n\t factory.error = true;\r\n\t forceRender(true);\r\n\t }\r\n\t });\r\n\t const res = factory(resolve, reject);\r\n\t if (isObject(res)) {\r\n\t if (isPromise(res)) {\r\n\t // () => Promise\r\n\t if (isUndef(factory.resolved)) {\r\n\t res.then(resolve, reject);\r\n\t }\r\n\t }\r\n\t else if (isPromise(res.component)) {\r\n\t res.component.then(resolve, reject);\r\n\t if (isDef(res.error)) {\r\n\t factory.errorComp = ensureCtor(res.error, baseCtor);\r\n\t }\r\n\t if (isDef(res.loading)) {\r\n\t factory.loadingComp = ensureCtor(res.loading, baseCtor);\r\n\t if (res.delay === 0) {\r\n\t factory.loading = true;\r\n\t }\r\n\t else {\r\n\t // @ts-expect-error NodeJS timeout type\r\n\t timerLoading = setTimeout(() => {\r\n\t timerLoading = null;\r\n\t if (isUndef(factory.resolved) && isUndef(factory.error)) {\r\n\t factory.loading = true;\r\n\t forceRender(false);\r\n\t }\r\n\t }, res.delay || 200);\r\n\t }\r\n\t }\r\n\t if (isDef(res.timeout)) {\r\n\t // @ts-expect-error NodeJS timeout type\r\n\t timerTimeout = setTimeout(() => {\r\n\t timerTimeout = null;\r\n\t if (isUndef(factory.resolved)) {\r\n\t reject(`timeout (${res.timeout}ms)` );\r\n\t }\r\n\t }, res.timeout);\r\n\t }\r\n\t }\r\n\t }\r\n\t sync = false;\r\n\t // return in case resolved synchronously\r\n\t return factory.loading ? factory.loadingComp : factory.resolved;\r\n\t }\r\n\t}\n\n\tfunction getFirstComponentChild(children) {\r\n\t if (isArray(children)) {\r\n\t for (let i = 0; i < children.length; i++) {\r\n\t const c = children[i];\r\n\t if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\r\n\t return c;\r\n\t }\r\n\t }\r\n\t }\r\n\t}\n\n\tconst SIMPLE_NORMALIZE = 1;\r\n\tconst ALWAYS_NORMALIZE = 2;\r\n\t// wrapper function for providing a more flexible interface\r\n\t// without getting yelled at by flow\r\n\tfunction createElement$1(context, tag, data, children, normalizationType, alwaysNormalize) {\r\n\t if (isArray(data) || isPrimitive(data)) {\r\n\t normalizationType = children;\r\n\t children = data;\r\n\t data = undefined;\r\n\t }\r\n\t if (isTrue(alwaysNormalize)) {\r\n\t normalizationType = ALWAYS_NORMALIZE;\r\n\t }\r\n\t return _createElement(context, tag, data, children, normalizationType);\r\n\t}\r\n\tfunction _createElement(context, tag, data, children, normalizationType) {\r\n\t if (isDef(data) && isDef(data.__ob__)) {\r\n\t warn(`Avoid using observed data object as vnode data: ${JSON.stringify(data)}\\n` + 'Always create fresh vnode data objects in each render!', context);\r\n\t return createEmptyVNode();\r\n\t }\r\n\t // object syntax in v-bind\r\n\t if (isDef(data) && isDef(data.is)) {\r\n\t tag = data.is;\r\n\t }\r\n\t if (!tag) {\r\n\t // in case of component :is set to falsy value\r\n\t return createEmptyVNode();\r\n\t }\r\n\t // warn against non-primitive key\r\n\t if (isDef(data) && isDef(data.key) && !isPrimitive(data.key)) {\r\n\t warn('Avoid using non-primitive value as key, ' +\r\n\t 'use string/number value instead.', context);\r\n\t }\r\n\t // support single function children as default scoped slot\r\n\t if (isArray(children) && isFunction(children[0])) {\r\n\t data = data || {};\r\n\t data.scopedSlots = { default: children[0] };\r\n\t children.length = 0;\r\n\t }\r\n\t if (normalizationType === ALWAYS_NORMALIZE) {\r\n\t children = normalizeChildren(children);\r\n\t }\r\n\t else if (normalizationType === SIMPLE_NORMALIZE) {\r\n\t children = simpleNormalizeChildren(children);\r\n\t }\r\n\t let vnode, ns;\r\n\t if (typeof tag === 'string') {\r\n\t let Ctor;\r\n\t ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\r\n\t if (config.isReservedTag(tag)) {\r\n\t // platform built-in elements\r\n\t if (isDef(data) &&\r\n\t isDef(data.nativeOn) &&\r\n\t data.tag !== 'component') {\r\n\t warn(`The .native modifier for v-on is only valid on components but it was used on <${tag}>.`, context);\r\n\t }\r\n\t vnode = new VNode(config.parsePlatformTagName(tag), data, children, undefined, undefined, context);\r\n\t }\r\n\t else if ((!data || !data.pre) &&\r\n\t isDef((Ctor = resolveAsset(context.$options, 'components', tag)))) {\r\n\t // component\r\n\t vnode = createComponent(Ctor, data, context, children, tag);\r\n\t }\r\n\t else {\r\n\t // unknown or unlisted namespaced elements\r\n\t // check at runtime because it may get assigned a namespace when its\r\n\t // parent normalizes children\r\n\t vnode = new VNode(tag, data, children, undefined, undefined, context);\r\n\t }\r\n\t }\r\n\t else {\r\n\t // direct component options / constructor\r\n\t vnode = createComponent(tag, data, context, children);\r\n\t }\r\n\t if (isArray(vnode)) {\r\n\t return vnode;\r\n\t }\r\n\t else if (isDef(vnode)) {\r\n\t if (isDef(ns))\r\n\t applyNS(vnode, ns);\r\n\t if (isDef(data))\r\n\t registerDeepBindings(data);\r\n\t return vnode;\r\n\t }\r\n\t else {\r\n\t return createEmptyVNode();\r\n\t }\r\n\t}\r\n\tfunction applyNS(vnode, ns, force) {\r\n\t vnode.ns = ns;\r\n\t if (vnode.tag === 'foreignObject') {\r\n\t // use default namespace inside foreignObject\r\n\t ns = undefined;\r\n\t force = true;\r\n\t }\r\n\t if (isDef(vnode.children)) {\r\n\t for (let i = 0, l = vnode.children.length; i < l; i++) {\r\n\t const child = vnode.children[i];\r\n\t if (isDef(child.tag) &&\r\n\t (isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\r\n\t applyNS(child, ns, force);\r\n\t }\r\n\t }\r\n\t }\r\n\t}\r\n\t// ref #5318\r\n\t// necessary to ensure parent re-render when deep bindings like :style and\r\n\t// :class are used on slot nodes\r\n\tfunction registerDeepBindings(data) {\r\n\t if (isObject(data.style)) {\r\n\t traverse(data.style);\r\n\t }\r\n\t if (isObject(data.class)) {\r\n\t traverse(data.class);\r\n\t }\r\n\t}\n\n\t/**\r\n\t * @internal this function needs manual public type declaration because it relies\r\n\t * on previously manually authored types from Vue 2\r\n\t */\r\n\tfunction h(type, props, children) {\r\n\t if (!currentInstance) {\r\n\t warn(`globally imported h() can only be invoked when there is an active ` +\r\n\t `component instance, e.g. synchronously in a component's render or setup function.`);\r\n\t }\r\n\t return createElement$1(currentInstance, type, props, children, 2, true);\r\n\t}\n\n\tfunction handleError(err, vm, info) {\r\n\t // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\r\n\t // See: https://github.com/vuejs/vuex/issues/1505\r\n\t pushTarget();\r\n\t try {\r\n\t if (vm) {\r\n\t let cur = vm;\r\n\t while ((cur = cur.$parent)) {\r\n\t const hooks = cur.$options.errorCaptured;\r\n\t if (hooks) {\r\n\t for (let i = 0; i < hooks.length; i++) {\r\n\t try {\r\n\t const capture = hooks[i].call(cur, err, vm, info) === false;\r\n\t if (capture)\r\n\t return;\r\n\t }\r\n\t catch (e) {\r\n\t globalHandleError(e, cur, 'errorCaptured hook');\r\n\t }\r\n\t }\r\n\t }\r\n\t }\r\n\t }\r\n\t globalHandleError(err, vm, info);\r\n\t }\r\n\t finally {\r\n\t popTarget();\r\n\t }\r\n\t}\r\n\tfunction invokeWithErrorHandling(handler, context, args, vm, info) {\r\n\t let res;\r\n\t try {\r\n\t res = args ? handler.apply(context, args) : handler.call(context);\r\n\t if (res && !res._isVue && isPromise(res) && !res._handled) {\r\n\t res.catch(e => handleError(e, vm, info + ` (Promise/async)`));\r\n\t res._handled = true;\r\n\t }\r\n\t }\r\n\t catch (e) {\r\n\t handleError(e, vm, info);\r\n\t }\r\n\t return res;\r\n\t}\r\n\tfunction globalHandleError(err, vm, info) {\r\n\t if (config.errorHandler) {\r\n\t try {\r\n\t return config.errorHandler.call(null, err, vm, info);\r\n\t }\r\n\t catch (e) {\r\n\t // if the user intentionally throws the original error in the handler,\r\n\t // do not log it twice\r\n\t if (e !== err) {\r\n\t logError(e, null, 'config.errorHandler');\r\n\t }\r\n\t }\r\n\t }\r\n\t logError(err, vm, info);\r\n\t}\r\n\tfunction logError(err, vm, info) {\r\n\t {\r\n\t warn(`Error in ${info}: \"${err.toString()}\"`, vm);\r\n\t }\r\n\t /* istanbul ignore else */\r\n\t if (inBrowser && typeof console !== 'undefined') {\r\n\t console.error(err);\r\n\t }\r\n\t else {\r\n\t throw err;\r\n\t }\r\n\t}\n\n\t/* globals MutationObserver */\r\n\tlet isUsingMicroTask = false;\r\n\tconst callbacks = [];\r\n\tlet pending = false;\r\n\tfunction flushCallbacks() {\r\n\t pending = false;\r\n\t const copies = callbacks.slice(0);\r\n\t callbacks.length = 0;\r\n\t for (let i = 0; i < copies.length; i++) {\r\n\t copies[i]();\r\n\t }\r\n\t}\r\n\t// Here we have async deferring wrappers using microtasks.\r\n\t// In 2.5 we used (macro) tasks (in combination with microtasks).\r\n\t// However, it has subtle problems when state is changed right before repaint\r\n\t// (e.g. #6813, out-in transitions).\r\n\t// Also, using (macro) tasks in event handler would cause some weird behaviors\r\n\t// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\r\n\t// So we now use microtasks everywhere, again.\r\n\t// A major drawback of this tradeoff is that there are some scenarios\r\n\t// where microtasks have too high a priority and fire in between supposedly\r\n\t// sequential events (e.g. #4521, #6690, which have workarounds)\r\n\t// or even between bubbling of the same event (#6566).\r\n\tlet timerFunc;\r\n\t// The nextTick behavior leverages the microtask queue, which can be accessed\r\n\t// via either native Promise.then or MutationObserver.\r\n\t// MutationObserver has wider support, however it is seriously bugged in\r\n\t// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\r\n\t// completely stops working after triggering a few times... so, if native\r\n\t// Promise is available, we will use it:\r\n\t/* istanbul ignore next, $flow-disable-line */\r\n\tif (typeof Promise !== 'undefined' && isNative(Promise)) {\r\n\t const p = Promise.resolve();\r\n\t timerFunc = () => {\r\n\t p.then(flushCallbacks);\r\n\t // In problematic UIWebViews, Promise.then doesn't completely break, but\r\n\t // it can get stuck in a weird state where callbacks are pushed into the\r\n\t // microtask queue but the queue isn't being flushed, until the browser\r\n\t // needs to do some other work, e.g. handle a timer. Therefore we can\r\n\t // \"force\" the microtask queue to be flushed by adding an empty timer.\r\n\t if (isIOS)\r\n\t setTimeout(noop);\r\n\t };\r\n\t isUsingMicroTask = true;\r\n\t}\r\n\telse if (!isIE &&\r\n\t typeof MutationObserver !== 'undefined' &&\r\n\t (isNative(MutationObserver) ||\r\n\t // PhantomJS and iOS 7.x\r\n\t MutationObserver.toString() === '[object MutationObserverConstructor]')) {\r\n\t // Use MutationObserver where native Promise is not available,\r\n\t // e.g. PhantomJS, iOS7, Android 4.4\r\n\t // (#6466 MutationObserver is unreliable in IE11)\r\n\t let counter = 1;\r\n\t const observer = new MutationObserver(flushCallbacks);\r\n\t const textNode = document.createTextNode(String(counter));\r\n\t observer.observe(textNode, {\r\n\t characterData: true\r\n\t });\r\n\t timerFunc = () => {\r\n\t counter = (counter + 1) % 2;\r\n\t textNode.data = String(counter);\r\n\t };\r\n\t isUsingMicroTask = true;\r\n\t}\r\n\telse if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\r\n\t // Fallback to setImmediate.\r\n\t // Technically it leverages the (macro) task queue,\r\n\t // but it is still a better choice than setTimeout.\r\n\t timerFunc = () => {\r\n\t setImmediate(flushCallbacks);\r\n\t };\r\n\t}\r\n\telse {\r\n\t // Fallback to setTimeout.\r\n\t timerFunc = () => {\r\n\t setTimeout(flushCallbacks, 0);\r\n\t };\r\n\t}\r\n\t/**\r\n\t * @internal\r\n\t */\r\n\tfunction nextTick(cb, ctx) {\r\n\t let _resolve;\r\n\t callbacks.push(() => {\r\n\t if (cb) {\r\n\t try {\r\n\t cb.call(ctx);\r\n\t }\r\n\t catch (e) {\r\n\t handleError(e, ctx, 'nextTick');\r\n\t }\r\n\t }\r\n\t else if (_resolve) {\r\n\t _resolve(ctx);\r\n\t }\r\n\t });\r\n\t if (!pending) {\r\n\t pending = true;\r\n\t timerFunc();\r\n\t }\r\n\t // $flow-disable-line\r\n\t if (!cb && typeof Promise !== 'undefined') {\r\n\t return new Promise(resolve => {\r\n\t _resolve = resolve;\r\n\t });\r\n\t }\r\n\t}\n\n\tfunction useCssModule(name = '$style') {\r\n\t /* istanbul ignore else */\r\n\t {\r\n\t if (!currentInstance) {\r\n\t warn(`useCssModule must be called inside setup()`);\r\n\t return emptyObject;\r\n\t }\r\n\t const mod = currentInstance[name];\r\n\t if (!mod) {\r\n\t warn(`Current instance does not have CSS module named \"${name}\".`);\r\n\t return emptyObject;\r\n\t }\r\n\t return mod;\r\n\t }\r\n\t}\n\n\t/**\r\n\t * Runtime helper for SFC's CSS variable injection feature.\r\n\t * @private\r\n\t */\r\n\tfunction useCssVars(getter) {\r\n\t if (!inBrowser && !false)\r\n\t return;\r\n\t const instance = currentInstance;\r\n\t if (!instance) {\r\n\t warn(`useCssVars is called without current active component instance.`);\r\n\t return;\r\n\t }\r\n\t watchPostEffect(() => {\r\n\t const el = instance.$el;\r\n\t const vars = getter(instance, instance._setupProxy);\r\n\t if (el && el.nodeType === 1) {\r\n\t const style = el.style;\r\n\t for (const key in vars) {\r\n\t style.setProperty(`--${key}`, vars[key]);\r\n\t }\r\n\t }\r\n\t });\r\n\t}\n\n\t/**\r\n\t * v3-compatible async component API.\r\n\t * @internal the type is manually declared in <root>/types/v3-define-async-component.d.ts\r\n\t * because it relies on existing manual types\r\n\t */\r\n\tfunction defineAsyncComponent(source) {\r\n\t if (isFunction(source)) {\r\n\t source = { loader: source };\r\n\t }\r\n\t const { loader, loadingComponent, errorComponent, delay = 200, timeout, // undefined = never times out\r\n\t suspensible = false, // in Vue 3 default is true\r\n\t onError: userOnError } = source;\r\n\t if (suspensible) {\r\n\t warn(`The suspensiblbe option for async components is not supported in Vue2. It is ignored.`);\r\n\t }\r\n\t let pendingRequest = null;\r\n\t let retries = 0;\r\n\t const retry = () => {\r\n\t retries++;\r\n\t pendingRequest = null;\r\n\t return load();\r\n\t };\r\n\t const load = () => {\r\n\t let thisRequest;\r\n\t return (pendingRequest ||\r\n\t (thisRequest = pendingRequest =\r\n\t loader()\r\n\t .catch(err => {\r\n\t err = err instanceof Error ? err : new Error(String(err));\r\n\t if (userOnError) {\r\n\t return new Promise((resolve, reject) => {\r\n\t const userRetry = () => resolve(retry());\r\n\t const userFail = () => reject(err);\r\n\t userOnError(err, userRetry, userFail, retries + 1);\r\n\t });\r\n\t }\r\n\t else {\r\n\t throw err;\r\n\t }\r\n\t })\r\n\t .then((comp) => {\r\n\t if (thisRequest !== pendingRequest && pendingRequest) {\r\n\t return pendingRequest;\r\n\t }\r\n\t if (!comp) {\r\n\t warn(`Async component loader resolved to undefined. ` +\r\n\t `If you are using retry(), make sure to return its return value.`);\r\n\t }\r\n\t // interop module default\r\n\t if (comp &&\r\n\t (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {\r\n\t comp = comp.default;\r\n\t }\r\n\t if (comp && !isObject(comp) && !isFunction(comp)) {\r\n\t throw new Error(`Invalid async component load result: ${comp}`);\r\n\t }\r\n\t return comp;\r\n\t })));\r\n\t };\r\n\t return () => {\r\n\t const component = load();\r\n\t return {\r\n\t component,\r\n\t delay,\r\n\t timeout,\r\n\t error: errorComponent,\r\n\t loading: loadingComponent\r\n\t };\r\n\t };\r\n\t}\n\n\tfunction createLifeCycle(hookName) {\r\n\t return (fn, target = currentInstance) => {\r\n\t if (!target) {\r\n\t warn(`${formatName(hookName)} is called when there is no active component instance to be ` +\r\n\t `associated with. ` +\r\n\t `Lifecycle injection APIs can only be used during execution of setup().`);\r\n\t return;\r\n\t }\r\n\t return injectHook(target, hookName, fn);\r\n\t };\r\n\t}\r\n\tfunction formatName(name) {\r\n\t if (name === 'beforeDestroy') {\r\n\t name = 'beforeUnmount';\r\n\t }\r\n\t else if (name === 'destroyed') {\r\n\t name = 'unmounted';\r\n\t }\r\n\t return `on${name[0].toUpperCase() + name.slice(1)}`;\r\n\t}\r\n\tfunction injectHook(instance, hookName, fn) {\r\n\t const options = instance.$options;\r\n\t options[hookName] = mergeLifecycleHook(options[hookName], fn);\r\n\t}\r\n\tconst onBeforeMount = createLifeCycle('beforeMount');\r\n\tconst onMounted = createLifeCycle('mounted');\r\n\tconst onBeforeUpdate = createLifeCycle('beforeUpdate');\r\n\tconst onUpdated = createLifeCycle('updated');\r\n\tconst onBeforeUnmount = createLifeCycle('beforeDestroy');\r\n\tconst onUnmounted = createLifeCycle('destroyed');\r\n\tconst onActivated = createLifeCycle('activated');\r\n\tconst onDeactivated = createLifeCycle('deactivated');\r\n\tconst onServerPrefetch = createLifeCycle('serverPrefetch');\r\n\tconst onRenderTracked = createLifeCycle('renderTracked');\r\n\tconst onRenderTriggered = createLifeCycle('renderTriggered');\r\n\tconst injectErrorCapturedHook = createLifeCycle('errorCaptured');\r\n\tfunction onErrorCaptured(hook, target = currentInstance) {\r\n\t injectErrorCapturedHook(hook, target);\r\n\t}\n\n\t/**\r\n\t * Note: also update dist/vue.runtime.mjs when adding new exports to this file.\r\n\t */\r\n\tconst version = '2.7.10';\r\n\t/**\r\n\t * @internal type is manually declared in <root>/types/v3-define-component.d.ts\r\n\t */\r\n\tfunction defineComponent(options) {\r\n\t return options;\r\n\t}\n\n\tvar vca = /*#__PURE__*/Object.freeze({\n\t __proto__: null,\n\t version: version,\n\t defineComponent: defineComponent,\n\t ref: ref$1,\n\t shallowRef: shallowRef,\n\t isRef: isRef,\n\t toRef: toRef,\n\t toRefs: toRefs,\n\t unref: unref,\n\t proxyRefs: proxyRefs,\n\t customRef: customRef,\n\t triggerRef: triggerRef,\n\t reactive: reactive,\n\t isReactive: isReactive,\n\t isReadonly: isReadonly,\n\t isShallow: isShallow,\n\t isProxy: isProxy,\n\t shallowReactive: shallowReactive,\n\t markRaw: markRaw,\n\t toRaw: toRaw,\n\t readonly: readonly,\n\t shallowReadonly: shallowReadonly,\n\t computed: computed,\n\t watch: watch,\n\t watchEffect: watchEffect,\n\t watchPostEffect: watchPostEffect,\n\t watchSyncEffect: watchSyncEffect,\n\t EffectScope: EffectScope,\n\t effectScope: effectScope,\n\t onScopeDispose: onScopeDispose,\n\t getCurrentScope: getCurrentScope,\n\t provide: provide,\n\t inject: inject,\n\t h: h,\n\t getCurrentInstance: getCurrentInstance,\n\t useSlots: useSlots,\n\t useAttrs: useAttrs,\n\t useListeners: useListeners,\n\t mergeDefaults: mergeDefaults,\n\t nextTick: nextTick,\n\t set: set,\n\t del: del,\n\t useCssModule: useCssModule,\n\t useCssVars: useCssVars,\n\t defineAsyncComponent: defineAsyncComponent,\n\t onBeforeMount: onBeforeMount,\n\t onMounted: onMounted,\n\t onBeforeUpdate: onBeforeUpdate,\n\t onUpdated: onUpdated,\n\t onBeforeUnmount: onBeforeUnmount,\n\t onUnmounted: onUnmounted,\n\t onActivated: onActivated,\n\t onDeactivated: onDeactivated,\n\t onServerPrefetch: onServerPrefetch,\n\t onRenderTracked: onRenderTracked,\n\t onRenderTriggered: onRenderTriggered,\n\t onErrorCaptured: onErrorCaptured\n\t});\n\n\tconst seenObjects = new _Set();\r\n\t/**\r\n\t * Recursively traverse an object to evoke all converted\r\n\t * getters, so that every nested property inside the object\r\n\t * is collected as a \"deep\" dependency.\r\n\t */\r\n\tfunction traverse(val) {\r\n\t _traverse(val, seenObjects);\r\n\t seenObjects.clear();\r\n\t return val;\r\n\t}\r\n\tfunction _traverse(val, seen) {\r\n\t let i, keys;\r\n\t const isA = isArray(val);\r\n\t if ((!isA && !isObject(val)) ||\r\n\t Object.isFrozen(val) ||\r\n\t val instanceof VNode) {\r\n\t return;\r\n\t }\r\n\t if (val.__ob__) {\r\n\t const depId = val.__ob__.dep.id;\r\n\t if (seen.has(depId)) {\r\n\t return;\r\n\t }\r\n\t seen.add(depId);\r\n\t }\r\n\t if (isA) {\r\n\t i = val.length;\r\n\t while (i--)\r\n\t _traverse(val[i], seen);\r\n\t }\r\n\t else if (isRef(val)) {\r\n\t _traverse(val.value, seen);\r\n\t }\r\n\t else {\r\n\t keys = Object.keys(val);\r\n\t i = keys.length;\r\n\t while (i--)\r\n\t _traverse(val[keys[i]], seen);\r\n\t }\r\n\t}\n\n\tlet uid$1 = 0;\r\n\t/**\r\n\t * A watcher parses an expression, collects dependencies,\r\n\t * and fires callback when the expression value changes.\r\n\t * This is used for both the $watch() api and directives.\r\n\t * @internal\r\n\t */\r\n\tclass Watcher {\r\n\t constructor(vm, expOrFn, cb, options, isRenderWatcher) {\r\n\t recordEffectScope(this, \r\n\t // if the active effect scope is manually created (not a component scope),\r\n\t // prioritize it\r\n\t activeEffectScope && !activeEffectScope._vm\r\n\t ? activeEffectScope\r\n\t : vm\r\n\t ? vm._scope\r\n\t : undefined);\r\n\t if ((this.vm = vm) && isRenderWatcher) {\r\n\t vm._watcher = this;\r\n\t }\r\n\t // options\r\n\t if (options) {\r\n\t this.deep = !!options.deep;\r\n\t this.user = !!options.user;\r\n\t this.lazy = !!options.lazy;\r\n\t this.sync = !!options.sync;\r\n\t this.before = options.before;\r\n\t {\r\n\t this.onTrack = options.onTrack;\r\n\t this.onTrigger = options.onTrigger;\r\n\t }\r\n\t }\r\n\t else {\r\n\t this.deep = this.user = this.lazy = this.sync = false;\r\n\t }\r\n\t this.cb = cb;\r\n\t this.id = ++uid$1; // uid for batching\r\n\t this.active = true;\r\n\t this.post = false;\r\n\t this.dirty = this.lazy; // for lazy watchers\r\n\t this.deps = [];\r\n\t this.newDeps = [];\r\n\t this.depIds = new _Set();\r\n\t this.newDepIds = new _Set();\r\n\t this.expression = expOrFn.toString() ;\r\n\t // parse expression for getter\r\n\t if (isFunction(expOrFn)) {\r\n\t this.getter = expOrFn;\r\n\t }\r\n\t else {\r\n\t this.getter = parsePath(expOrFn);\r\n\t if (!this.getter) {\r\n\t this.getter = noop;\r\n\t warn(`Failed watching path: \"${expOrFn}\" ` +\r\n\t 'Watcher only accepts simple dot-delimited paths. ' +\r\n\t 'For full control, use a function instead.', vm);\r\n\t }\r\n\t }\r\n\t this.value = this.lazy ? undefined : this.get();\r\n\t }\r\n\t /**\r\n\t * Evaluate the getter, and re-collect dependencies.\r\n\t */\r\n\t get() {\r\n\t pushTarget(this);\r\n\t let value;\r\n\t const vm = this.vm;\r\n\t try {\r\n\t value = this.getter.call(vm, vm);\r\n\t }\r\n\t catch (e) {\r\n\t if (this.user) {\r\n\t handleError(e, vm, `getter for watcher \"${this.expression}\"`);\r\n\t }\r\n\t else {\r\n\t throw e;\r\n\t }\r\n\t }\r\n\t finally {\r\n\t // \"touch\" every property so they are all tracked as\r\n\t // dependencies for deep watching\r\n\t if (this.deep) {\r\n\t traverse(value);\r\n\t }\r\n\t popTarget();\r\n\t this.cleanupDeps();\r\n\t }\r\n\t return value;\r\n\t }\r\n\t /**\r\n\t * Add a dependency to this directive.\r\n\t */\r\n\t addDep(dep) {\r\n\t const id = dep.id;\r\n\t if (!this.newDepIds.has(id)) {\r\n\t this.newDepIds.add(id);\r\n\t this.newDeps.push(dep);\r\n\t if (!this.depIds.has(id)) {\r\n\t dep.addSub(this);\r\n\t }\r\n\t }\r\n\t }\r\n\t /**\r\n\t * Clean up for dependency collection.\r\n\t */\r\n\t cleanupDeps() {\r\n\t let i = this.deps.length;\r\n\t while (i--) {\r\n\t const dep = this.deps[i];\r\n\t if (!this.newDepIds.has(dep.id)) {\r\n\t dep.removeSub(this);\r\n\t }\r\n\t }\r\n\t let tmp = this.depIds;\r\n\t this.depIds = this.newDepIds;\r\n\t this.newDepIds = tmp;\r\n\t this.newDepIds.clear();\r\n\t tmp = this.deps;\r\n\t this.deps = this.newDeps;\r\n\t this.newDeps = tmp;\r\n\t this.newDeps.length = 0;\r\n\t }\r\n\t /**\r\n\t * Subscriber interface.\r\n\t * Will be called when a dependency changes.\r\n\t */\r\n\t update() {\r\n\t /* istanbul ignore else */\r\n\t if (this.lazy) {\r\n\t this.dirty = true;\r\n\t }\r\n\t else if (this.sync) {\r\n\t this.run();\r\n\t }\r\n\t else {\r\n\t queueWatcher(this);\r\n\t }\r\n\t }\r\n\t /**\r\n\t * Scheduler job interface.\r\n\t * Will be called by the scheduler.\r\n\t */\r\n\t run() {\r\n\t if (this.active) {\r\n\t const value = this.get();\r\n\t if (value !== this.value ||\r\n\t // Deep watchers and watchers on Object/Arrays should fire even\r\n\t // when the value is the same, because the value may\r\n\t // have mutated.\r\n\t isObject(value) ||\r\n\t this.deep) {\r\n\t // set new value\r\n\t const oldValue = this.value;\r\n\t this.value = value;\r\n\t if (this.user) {\r\n\t const info = `callback for watcher \"${this.expression}\"`;\r\n\t invokeWithErrorHandling(this.cb, this.vm, [value, oldValue], this.vm, info);\r\n\t }\r\n\t else {\r\n\t this.cb.call(this.vm, value, oldValue);\r\n\t }\r\n\t }\r\n\t }\r\n\t }\r\n\t /**\r\n\t * Evaluate the value of the watcher.\r\n\t * This only gets called for lazy watchers.\r\n\t */\r\n\t evaluate() {\r\n\t this.value = this.get();\r\n\t this.dirty = false;\r\n\t }\r\n\t /**\r\n\t * Depend on all deps collected by this watcher.\r\n\t */\r\n\t depend() {\r\n\t let i = this.deps.length;\r\n\t while (i--) {\r\n\t this.deps[i].depend();\r\n\t }\r\n\t }\r\n\t /**\r\n\t * Remove self from all dependencies' subscriber list.\r\n\t */\r\n\t teardown() {\r\n\t if (this.vm && !this.vm._isBeingDestroyed) {\r\n\t remove$2(this.vm._scope.effects, this);\r\n\t }\r\n\t if (this.active) {\r\n\t let i = this.deps.length;\r\n\t while (i--) {\r\n\t this.deps[i].removeSub(this);\r\n\t }\r\n\t this.active = false;\r\n\t if (this.onStop) {\r\n\t this.onStop();\r\n\t }\r\n\t }\r\n\t }\r\n\t}\n\n\tlet mark;\r\n\tlet measure;\r\n\t{\r\n\t const perf = inBrowser && window.performance;\r\n\t /* istanbul ignore if */\r\n\t if (perf &&\r\n\t // @ts-ignore\r\n\t perf.mark &&\r\n\t // @ts-ignore\r\n\t perf.measure &&\r\n\t // @ts-ignore\r\n\t perf.clearMarks &&\r\n\t // @ts-ignore\r\n\t perf.clearMeasures) {\r\n\t mark = tag => perf.mark(tag);\r\n\t measure = (name, startTag, endTag) => {\r\n\t perf.measure(name, startTag, endTag);\r\n\t perf.clearMarks(startTag);\r\n\t perf.clearMarks(endTag);\r\n\t // perf.clearMeasures(name)\r\n\t };\r\n\t }\r\n\t}\n\n\tfunction initEvents(vm) {\r\n\t vm._events = Object.create(null);\r\n\t vm._hasHookEvent = false;\r\n\t // init parent attached events\r\n\t const listeners = vm.$options._parentListeners;\r\n\t if (listeners) {\r\n\t updateComponentListeners(vm, listeners);\r\n\t }\r\n\t}\r\n\tlet target$1;\r\n\tfunction add$1(event, fn) {\r\n\t target$1.$on(event, fn);\r\n\t}\r\n\tfunction remove$1(event, fn) {\r\n\t target$1.$off(event, fn);\r\n\t}\r\n\tfunction createOnceHandler$1(event, fn) {\r\n\t const _target = target$1;\r\n\t return function onceHandler() {\r\n\t const res = fn.apply(null, arguments);\r\n\t if (res !== null) {\r\n\t _target.$off(event, onceHandler);\r\n\t }\r\n\t };\r\n\t}\r\n\tfunction updateComponentListeners(vm, listeners, oldListeners) {\r\n\t target$1 = vm;\r\n\t updateListeners(listeners, oldListeners || {}, add$1, remove$1, createOnceHandler$1, vm);\r\n\t target$1 = undefined;\r\n\t}\r\n\tfunction eventsMixin(Vue) {\r\n\t const hookRE = /^hook:/;\r\n\t Vue.prototype.$on = function (event, fn) {\r\n\t const vm = this;\r\n\t if (isArray(event)) {\r\n\t for (let i = 0, l = event.length; i < l; i++) {\r\n\t vm.$on(event[i], fn);\r\n\t }\r\n\t }\r\n\t else {\r\n\t (vm._events[event] || (vm._events[event] = [])).push(fn);\r\n\t // optimize hook:event cost by using a boolean flag marked at registration\r\n\t // instead of a hash lookup\r\n\t if (hookRE.test(event)) {\r\n\t vm._hasHookEvent = true;\r\n\t }\r\n\t }\r\n\t return vm;\r\n\t };\r\n\t Vue.prototype.$once = function (event, fn) {\r\n\t const vm = this;\r\n\t function on() {\r\n\t vm.$off(event, on);\r\n\t fn.apply(vm, arguments);\r\n\t }\r\n\t on.fn = fn;\r\n\t vm.$on(event, on);\r\n\t return vm;\r\n\t };\r\n\t Vue.prototype.$off = function (event, fn) {\r\n\t const vm = this;\r\n\t // all\r\n\t if (!arguments.length) {\r\n\t vm._events = Object.create(null);\r\n\t return vm;\r\n\t }\r\n\t // array of events\r\n\t if (isArray(event)) {\r\n\t for (let i = 0, l = event.length; i < l; i++) {\r\n\t vm.$off(event[i], fn);\r\n\t }\r\n\t return vm;\r\n\t }\r\n\t // specific event\r\n\t const cbs = vm._events[event];\r\n\t if (!cbs) {\r\n\t return vm;\r\n\t }\r\n\t if (!fn) {\r\n\t vm._events[event] = null;\r\n\t return vm;\r\n\t }\r\n\t // specific handler\r\n\t let cb;\r\n\t let i = cbs.length;\r\n\t while (i--) {\r\n\t cb = cbs[i];\r\n\t if (cb === fn || cb.fn === fn) {\r\n\t cbs.splice(i, 1);\r\n\t break;\r\n\t }\r\n\t }\r\n\t return vm;\r\n\t };\r\n\t Vue.prototype.$emit = function (event) {\r\n\t const vm = this;\r\n\t {\r\n\t const lowerCaseEvent = event.toLowerCase();\r\n\t if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\r\n\t tip(`Event \"${lowerCaseEvent}\" is emitted in component ` +\r\n\t `${formatComponentName(vm)} but the handler is registered for \"${event}\". ` +\r\n\t `Note that HTML attributes are case-insensitive and you cannot use ` +\r\n\t `v-on to listen to camelCase events when using in-DOM templates. ` +\r\n\t `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\r\n\t }\r\n\t }\r\n\t let cbs = vm._events[event];\r\n\t if (cbs) {\r\n\t cbs = cbs.length > 1 ? toArray(cbs) : cbs;\r\n\t const args = toArray(arguments, 1);\r\n\t const info = `event handler for \"${event}\"`;\r\n\t for (let i = 0, l = cbs.length; i < l; i++) {\r\n\t invokeWithErrorHandling(cbs[i], vm, args, vm, info);\r\n\t }\r\n\t }\r\n\t return vm;\r\n\t };\r\n\t}\n\n\tlet activeInstance = null;\r\n\tlet isUpdatingChildComponent = false;\r\n\tfunction setActiveInstance(vm) {\r\n\t const prevActiveInstance = activeInstance;\r\n\t activeInstance = vm;\r\n\t return () => {\r\n\t activeInstance = prevActiveInstance;\r\n\t };\r\n\t}\r\n\tfunction initLifecycle(vm) {\r\n\t const options = vm.$options;\r\n\t // locate first non-abstract parent\r\n\t let parent = options.parent;\r\n\t if (parent && !options.abstract) {\r\n\t while (parent.$options.abstract && parent.$parent) {\r\n\t parent = parent.$parent;\r\n\t }\r\n\t parent.$children.push(vm);\r\n\t }\r\n\t vm.$parent = parent;\r\n\t vm.$root = parent ? parent.$root : vm;\r\n\t vm.$children = [];\r\n\t vm.$refs = {};\r\n\t vm._provided = parent ? parent._provided : Object.create(null);\r\n\t vm._watcher = null;\r\n\t vm._inactive = null;\r\n\t vm._directInactive = false;\r\n\t vm._isMounted = false;\r\n\t vm._isDestroyed = false;\r\n\t vm._isBeingDestroyed = false;\r\n\t}\r\n\tfunction lifecycleMixin(Vue) {\r\n\t Vue.prototype._update = function (vnode, hydrating) {\r\n\t const vm = this;\r\n\t const prevEl = vm.$el;\r\n\t const prevVnode = vm._vnode;\r\n\t const restoreActiveInstance = setActiveInstance(vm);\r\n\t vm._vnode = vnode;\r\n\t // Vue.prototype.__patch__ is injected in entry points\r\n\t // based on the rendering backend used.\r\n\t if (!prevVnode) {\r\n\t // initial render\r\n\t vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\r\n\t }\r\n\t else {\r\n\t // updates\r\n\t vm.$el = vm.__patch__(prevVnode, vnode);\r\n\t }\r\n\t restoreActiveInstance();\r\n\t // update __vue__ reference\r\n\t if (prevEl) {\r\n\t prevEl.__vue__ = null;\r\n\t }\r\n\t if (vm.$el) {\r\n\t vm.$el.__vue__ = vm;\r\n\t }\r\n\t // if parent is an HOC, update its $el as well\r\n\t let wrapper = vm;\r\n\t while (wrapper &&\r\n\t wrapper.$vnode &&\r\n\t wrapper.$parent &&\r\n\t wrapper.$vnode === wrapper.$parent._vnode) {\r\n\t wrapper.$parent.$el = wrapper.$el;\r\n\t wrapper = wrapper.$parent;\r\n\t }\r\n\t // updated hook is called by the scheduler to ensure that children are\r\n\t // updated in a parent's updated hook.\r\n\t };\r\n\t Vue.prototype.$forceUpdate = function () {\r\n\t const vm = this;\r\n\t if (vm._watcher) {\r\n\t vm._watcher.update();\r\n\t }\r\n\t };\r\n\t Vue.prototype.$destroy = function () {\r\n\t const vm = this;\r\n\t if (vm._isBeingDestroyed) {\r\n\t return;\r\n\t }\r\n\t callHook$1(vm, 'beforeDestroy');\r\n\t vm._isBeingDestroyed = true;\r\n\t // remove self from parent\r\n\t const parent = vm.$parent;\r\n\t if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\r\n\t remove$2(parent.$children, vm);\r\n\t }\r\n\t // teardown scope. this includes both the render watcher and other\r\n\t // watchers created\r\n\t vm._scope.stop();\r\n\t // remove reference from data ob\r\n\t // frozen object may not have observer.\r\n\t if (vm._data.__ob__) {\r\n\t vm._data.__ob__.vmCount--;\r\n\t }\r\n\t // call the last hook...\r\n\t vm._isDestroyed = true;\r\n\t // invoke destroy hooks on current rendered tree\r\n\t vm.__patch__(vm._vnode, null);\r\n\t // fire destroyed hook\r\n\t callHook$1(vm, 'destroyed');\r\n\t // turn off all instance listeners.\r\n\t vm.$off();\r\n\t // remove __vue__ reference\r\n\t if (vm.$el) {\r\n\t vm.$el.__vue__ = null;\r\n\t }\r\n\t // release circular reference (#6759)\r\n\t if (vm.$vnode) {\r\n\t vm.$vnode.parent = null;\r\n\t }\r\n\t };\r\n\t}\r\n\tfunction mountComponent(vm, el, hydrating) {\r\n\t vm.$el = el;\r\n\t if (!vm.$options.render) {\r\n\t // @ts-expect-error invalid type\r\n\t vm.$options.render = createEmptyVNode;\r\n\t {\r\n\t /* istanbul ignore if */\r\n\t if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\r\n\t vm.$options.el ||\r\n\t el) {\r\n\t warn('You are using the runtime-only build of Vue where the template ' +\r\n\t 'compiler is not available. Either pre-compile the templates into ' +\r\n\t 'render functions, or use the compiler-included build.', vm);\r\n\t }\r\n\t else {\r\n\t warn('Failed to mount component: template or render function not defined.', vm);\r\n\t }\r\n\t }\r\n\t }\r\n\t callHook$1(vm, 'beforeMount');\r\n\t let updateComponent;\r\n\t /* istanbul ignore if */\r\n\t if (config.performance && mark) {\r\n\t updateComponent = () => {\r\n\t const name = vm._name;\r\n\t const id = vm._uid;\r\n\t const startTag = `vue-perf-start:${id}`;\r\n\t const endTag = `vue-perf-end:${id}`;\r\n\t mark(startTag);\r\n\t const vnode = vm._render();\r\n\t mark(endTag);\r\n\t measure(`vue ${name} render`, startTag, endTag);\r\n\t mark(startTag);\r\n\t vm._update(vnode, hydrating);\r\n\t mark(endTag);\r\n\t measure(`vue ${name} patch`, startTag, endTag);\r\n\t };\r\n\t }\r\n\t else {\r\n\t updateComponent = () => {\r\n\t vm._update(vm._render(), hydrating);\r\n\t };\r\n\t }\r\n\t const watcherOptions = {\r\n\t before() {\r\n\t if (vm._isMounted && !vm._isDestroyed) {\r\n\t callHook$1(vm, 'beforeUpdate');\r\n\t }\r\n\t }\r\n\t };\r\n\t {\r\n\t watcherOptions.onTrack = e => callHook$1(vm, 'renderTracked', [e]);\r\n\t watcherOptions.onTrigger = e => callHook$1(vm, 'renderTriggered', [e]);\r\n\t }\r\n\t // we set this to vm._watcher inside the watcher's constructor\r\n\t // since the watcher's initial patch may call $forceUpdate (e.g. inside child\r\n\t // component's mounted hook), which relies on vm._watcher being already defined\r\n\t new Watcher(vm, updateComponent, noop, watcherOptions, true /* isRenderWatcher */);\r\n\t hydrating = false;\r\n\t // flush buffer for flush: \"pre\" watchers queued in setup()\r\n\t const preWatchers = vm._preWatchers;\r\n\t if (preWatchers) {\r\n\t for (let i = 0; i < preWatchers.length; i++) {\r\n\t preWatchers[i].run();\r\n\t }\r\n\t }\r\n\t // manually mounted instance, call mounted on self\r\n\t // mounted is called for render-created child components in its inserted hook\r\n\t if (vm.$vnode == null) {\r\n\t vm._isMounted = true;\r\n\t callHook$1(vm, 'mounted');\r\n\t }\r\n\t return vm;\r\n\t}\r\n\tfunction updateChildComponent(vm, propsData, listeners, parentVnode, renderChildren) {\r\n\t {\r\n\t isUpdatingChildComponent = true;\r\n\t }\r\n\t // determine whether component has slot children\r\n\t // we need to do this before overwriting $options._renderChildren.\r\n\t // check if there are dynamic scopedSlots (hand-written or compiled but with\r\n\t // dynamic slot names). Static scoped slots compiled from template has the\r\n\t // \"$stable\" marker.\r\n\t const newScopedSlots = parentVnode.data.scopedSlots;\r\n\t const oldScopedSlots = vm.$scopedSlots;\r\n\t const hasDynamicScopedSlot = !!((newScopedSlots && !newScopedSlots.$stable) ||\r\n\t (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\r\n\t (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key) ||\r\n\t (!newScopedSlots && vm.$scopedSlots.$key));\r\n\t // Any static slot children from the parent may have changed during parent's\r\n\t // update. Dynamic scoped slots may also have changed. In such cases, a forced\r\n\t // update is necessary to ensure correctness.\r\n\t let needsForceUpdate = !!(renderChildren || // has new static slots\r\n\t vm.$options._renderChildren || // has old static slots\r\n\t hasDynamicScopedSlot);\r\n\t const prevVNode = vm.$vnode;\r\n\t vm.$options._parentVnode = parentVnode;\r\n\t vm.$vnode = parentVnode; // update vm's placeholder node without re-render\r\n\t if (vm._vnode) {\r\n\t // update child tree's parent\r\n\t vm._vnode.parent = parentVnode;\r\n\t }\r\n\t vm.$options._renderChildren = renderChildren;\r\n\t // update $attrs and $listeners hash\r\n\t // these are also reactive so they may trigger child update if the child\r\n\t // used them during render\r\n\t const attrs = parentVnode.data.attrs || emptyObject;\r\n\t if (vm._attrsProxy) {\r\n\t // force update if attrs are accessed and has changed since it may be\r\n\t // passed to a child component.\r\n\t if (syncSetupProxy(vm._attrsProxy, attrs, (prevVNode.data && prevVNode.data.attrs) || emptyObject, vm, '$attrs')) {\r\n\t needsForceUpdate = true;\r\n\t }\r\n\t }\r\n\t vm.$attrs = attrs;\r\n\t // update listeners\r\n\t listeners = listeners || emptyObject;\r\n\t const prevListeners = vm.$options._parentListeners;\r\n\t if (vm._listenersProxy) {\r\n\t syncSetupProxy(vm._listenersProxy, listeners, prevListeners || emptyObject, vm, '$listeners');\r\n\t }\r\n\t vm.$listeners = vm.$options._parentListeners = listeners;\r\n\t updateComponentListeners(vm, listeners, prevListeners);\r\n\t // update props\r\n\t if (propsData && vm.$options.props) {\r\n\t toggleObserving(false);\r\n\t const props = vm._props;\r\n\t const propKeys = vm.$options._propKeys || [];\r\n\t for (let i = 0; i < propKeys.length; i++) {\r\n\t const key = propKeys[i];\r\n\t const propOptions = vm.$options.props; // wtf flow?\r\n\t props[key] = validateProp(key, propOptions, propsData, vm);\r\n\t }\r\n\t toggleObserving(true);\r\n\t // keep a copy of raw propsData\r\n\t vm.$options.propsData = propsData;\r\n\t }\r\n\t // resolve slots + force update if has children\r\n\t if (needsForceUpdate) {\r\n\t vm.$slots = resolveSlots(renderChildren, parentVnode.context);\r\n\t vm.$forceUpdate();\r\n\t }\r\n\t {\r\n\t isUpdatingChildComponent = false;\r\n\t }\r\n\t}\r\n\tfunction isInInactiveTree(vm) {\r\n\t while (vm && (vm = vm.$parent)) {\r\n\t if (vm._inactive)\r\n\t return true;\r\n\t }\r\n\t return false;\r\n\t}\r\n\tfunction activateChildComponent(vm, direct) {\r\n\t if (direct) {\r\n\t vm._directInactive = false;\r\n\t if (isInInactiveTree(vm)) {\r\n\t return;\r\n\t }\r\n\t }\r\n\t else if (vm._directInactive) {\r\n\t return;\r\n\t }\r\n\t if (vm._inactive || vm._inactive === null) {\r\n\t vm._inactive = false;\r\n\t for (let i = 0; i < vm.$children.length; i++) {\r\n\t activateChildComponent(vm.$children[i]);\r\n\t }\r\n\t callHook$1(vm, 'activated');\r\n\t }\r\n\t}\r\n\tfunction deactivateChildComponent(vm, direct) {\r\n\t if (direct) {\r\n\t vm._directInactive = true;\r\n\t if (isInInactiveTree(vm)) {\r\n\t return;\r\n\t }\r\n\t }\r\n\t if (!vm._inactive) {\r\n\t vm._inactive = true;\r\n\t for (let i = 0; i < vm.$children.length; i++) {\r\n\t deactivateChildComponent(vm.$children[i]);\r\n\t }\r\n\t callHook$1(vm, 'deactivated');\r\n\t }\r\n\t}\r\n\tfunction callHook$1(vm, hook, args, setContext = true) {\r\n\t // #7573 disable dep collection when invoking lifecycle hooks\r\n\t pushTarget();\r\n\t const prev = currentInstance;\r\n\t setContext && setCurrentInstance(vm);\r\n\t const handlers = vm.$options[hook];\r\n\t const info = `${hook} hook`;\r\n\t if (handlers) {\r\n\t for (let i = 0, j = handlers.length; i < j; i++) {\r\n\t invokeWithErrorHandling(handlers[i], vm, args || null, vm, info);\r\n\t }\r\n\t }\r\n\t if (vm._hasHookEvent) {\r\n\t vm.$emit('hook:' + hook);\r\n\t }\r\n\t setContext && setCurrentInstance(prev);\r\n\t popTarget();\r\n\t}\n\n\tconst MAX_UPDATE_COUNT = 100;\r\n\tconst queue = [];\r\n\tconst activatedChildren = [];\r\n\tlet has = {};\r\n\tlet circular = {};\r\n\tlet waiting = false;\r\n\tlet flushing = false;\r\n\tlet index = 0;\r\n\t/**\r\n\t * Reset the scheduler's state.\r\n\t */\r\n\tfunction resetSchedulerState() {\r\n\t index = queue.length = activatedChildren.length = 0;\r\n\t has = {};\r\n\t {\r\n\t circular = {};\r\n\t }\r\n\t waiting = flushing = false;\r\n\t}\r\n\t// Async edge case #6566 requires saving the timestamp when event listeners are\r\n\t// attached. However, calling performance.now() has a perf overhead especially\r\n\t// if the page has thousands of event listeners. Instead, we take a timestamp\r\n\t// every time the scheduler flushes and use that for all event listeners\r\n\t// attached during that flush.\r\n\tlet currentFlushTimestamp = 0;\r\n\t// Async edge case fix requires storing an event listener's attach timestamp.\r\n\tlet getNow = Date.now;\r\n\t// Determine what event timestamp the browser is using. Annoyingly, the\r\n\t// timestamp can either be hi-res (relative to page load) or low-res\r\n\t// (relative to UNIX epoch), so in order to compare time we have to use the\r\n\t// same timestamp type when saving the flush timestamp.\r\n\t// All IE versions use low-res event timestamps, and have problematic clock\r\n\t// implementations (#9632)\r\n\tif (inBrowser && !isIE) {\r\n\t const performance = window.performance;\r\n\t if (performance &&\r\n\t typeof performance.now === 'function' &&\r\n\t getNow() > document.createEvent('Event').timeStamp) {\r\n\t // if the event timestamp, although evaluated AFTER the Date.now(), is\r\n\t // smaller than it, it means the event is using a hi-res timestamp,\r\n\t // and we need to use the hi-res version for event listener timestamps as\r\n\t // well.\r\n\t getNow = () => performance.now();\r\n\t }\r\n\t}\r\n\tconst sortCompareFn = (a, b) => {\r\n\t if (a.post) {\r\n\t if (!b.post)\r\n\t return 1;\r\n\t }\r\n\t else if (b.post) {\r\n\t return -1;\r\n\t }\r\n\t return a.id - b.id;\r\n\t};\r\n\t/**\r\n\t * Flush both queues and run the watchers.\r\n\t */\r\n\tfunction flushSchedulerQueue() {\r\n\t currentFlushTimestamp = getNow();\r\n\t flushing = true;\r\n\t let watcher, id;\r\n\t // Sort queue before flush.\r\n\t // This ensures that:\r\n\t // 1. Components are updated from parent to child. (because parent is always\r\n\t // created before the child)\r\n\t // 2. A component's user watchers are run before its render watcher (because\r\n\t // user watchers are created before the render watcher)\r\n\t // 3. If a component is destroyed during a parent component's watcher run,\r\n\t // its watchers can be skipped.\r\n\t queue.sort(sortCompareFn);\r\n\t // do not cache length because more watchers might be pushed\r\n\t // as we run existing watchers\r\n\t for (index = 0; index < queue.length; index++) {\r\n\t watcher = queue[index];\r\n\t if (watcher.before) {\r\n\t watcher.before();\r\n\t }\r\n\t id = watcher.id;\r\n\t has[id] = null;\r\n\t watcher.run();\r\n\t // in dev build, check and stop circular updates.\r\n\t if (has[id] != null) {\r\n\t circular[id] = (circular[id] || 0) + 1;\r\n\t if (circular[id] > MAX_UPDATE_COUNT) {\r\n\t warn('You may have an infinite update loop ' +\r\n\t (watcher.user\r\n\t ? `in watcher with expression \"${watcher.expression}\"`\r\n\t : `in a component render function.`), watcher.vm);\r\n\t break;\r\n\t }\r\n\t }\r\n\t }\r\n\t // keep copies of post queues before resetting state\r\n\t const activatedQueue = activatedChildren.slice();\r\n\t const updatedQueue = queue.slice();\r\n\t resetSchedulerState();\r\n\t // call component updated and activated hooks\r\n\t callActivatedHooks(activatedQueue);\r\n\t callUpdatedHooks(updatedQueue);\r\n\t // devtool hook\r\n\t /* istanbul ignore if */\r\n\t if (devtools && config.devtools) {\r\n\t devtools.emit('flush');\r\n\t }\r\n\t}\r\n\tfunction callUpdatedHooks(queue) {\r\n\t let i = queue.length;\r\n\t while (i--) {\r\n\t const watcher = queue[i];\r\n\t const vm = watcher.vm;\r\n\t if (vm && vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\r\n\t callHook$1(vm, 'updated');\r\n\t }\r\n\t }\r\n\t}\r\n\t/**\r\n\t * Queue a kept-alive component that was activated during patch.\r\n\t * The queue will be processed after the entire tree has been patched.\r\n\t */\r\n\tfunction queueActivatedComponent(vm) {\r\n\t // setting _inactive to false here so that a render function can\r\n\t // rely on checking whether it's in an inactive tree (e.g. router-view)\r\n\t vm._inactive = false;\r\n\t activatedChildren.push(vm);\r\n\t}\r\n\tfunction callActivatedHooks(queue) {\r\n\t for (let i = 0; i < queue.length; i++) {\r\n\t queue[i]._inactive = true;\r\n\t activateChildComponent(queue[i], true /* true */);\r\n\t }\r\n\t}\r\n\t/**\r\n\t * Push a watcher into the watcher queue.\r\n\t * Jobs with duplicate IDs will be skipped unless it's\r\n\t * pushed when the queue is being flushed.\r\n\t */\r\n\tfunction queueWatcher(watcher) {\r\n\t const id = watcher.id;\r\n\t if (has[id] != null) {\r\n\t return;\r\n\t }\r\n\t if (watcher === Dep.target && watcher.noRecurse) {\r\n\t return;\r\n\t }\r\n\t has[id] = true;\r\n\t if (!flushing) {\r\n\t queue.push(watcher);\r\n\t }\r\n\t else {\r\n\t // if already flushing, splice the watcher based on its id\r\n\t // if already past its id, it will be run next immediately.\r\n\t let i = queue.length - 1;\r\n\t while (i > index && queue[i].id > watcher.id) {\r\n\t i--;\r\n\t }\r\n\t queue.splice(i + 1, 0, watcher);\r\n\t }\r\n\t // queue the flush\r\n\t if (!waiting) {\r\n\t waiting = true;\r\n\t if (!config.async) {\r\n\t flushSchedulerQueue();\r\n\t return;\r\n\t }\r\n\t nextTick(flushSchedulerQueue);\r\n\t }\r\n\t}\n\n\tfunction initProvide(vm) {\r\n\t const provideOption = vm.$options.provide;\r\n\t if (provideOption) {\r\n\t const provided = isFunction(provideOption)\r\n\t ? provideOption.call(vm)\r\n\t : provideOption;\r\n\t if (!isObject(provided)) {\r\n\t return;\r\n\t }\r\n\t const source = resolveProvided(vm);\r\n\t // IE9 doesn't support Object.getOwnPropertyDescriptors so we have to\r\n\t // iterate the keys ourselves.\r\n\t const keys = hasSymbol ? Reflect.ownKeys(provided) : Object.keys(provided);\r\n\t for (let i = 0; i < keys.length; i++) {\r\n\t const key = keys[i];\r\n\t Object.defineProperty(source, key, Object.getOwnPropertyDescriptor(provided, key));\r\n\t }\r\n\t }\r\n\t}\r\n\tfunction initInjections(vm) {\r\n\t const result = resolveInject(vm.$options.inject, vm);\r\n\t if (result) {\r\n\t toggleObserving(false);\r\n\t Object.keys(result).forEach(key => {\r\n\t /* istanbul ignore else */\r\n\t {\r\n\t defineReactive(vm, key, result[key], () => {\r\n\t warn(`Avoid mutating an injected value directly since the changes will be ` +\r\n\t `overwritten whenever the provided component re-renders. ` +\r\n\t `injection being mutated: \"${key}\"`, vm);\r\n\t });\r\n\t }\r\n\t });\r\n\t toggleObserving(true);\r\n\t }\r\n\t}\r\n\tfunction resolveInject(inject, vm) {\r\n\t if (inject) {\r\n\t // inject is :any because flow is not smart enough to figure out cached\r\n\t const result = Object.create(null);\r\n\t const keys = hasSymbol ? Reflect.ownKeys(inject) : Object.keys(inject);\r\n\t for (let i = 0; i < keys.length; i++) {\r\n\t const key = keys[i];\r\n\t // #6574 in case the inject object is observed...\r\n\t if (key === '__ob__')\r\n\t continue;\r\n\t const provideKey = inject[key].from;\r\n\t if (provideKey in vm._provided) {\r\n\t result[key] = vm._provided[provideKey];\r\n\t }\r\n\t else if ('default' in inject[key]) {\r\n\t const provideDefault = inject[key].default;\r\n\t result[key] = isFunction(provideDefault)\r\n\t ? provideDefault.call(vm)\r\n\t : provideDefault;\r\n\t }\r\n\t else {\r\n\t warn(`Injection \"${key}\" not found`, vm);\r\n\t }\r\n\t }\r\n\t return result;\r\n\t }\r\n\t}\n\n\tfunction FunctionalRenderContext(data, props, children, parent, Ctor) {\r\n\t const options = Ctor.options;\r\n\t // ensure the createElement function in functional components\r\n\t // gets a unique context - this is necessary for correct named slot check\r\n\t let contextVm;\r\n\t if (hasOwn(parent, '_uid')) {\r\n\t contextVm = Object.create(parent);\r\n\t contextVm._original = parent;\r\n\t }\r\n\t else {\r\n\t // the context vm passed in is a functional context as well.\r\n\t // in this case we want to make sure we are able to get a hold to the\r\n\t // real context instance.\r\n\t contextVm = parent;\r\n\t // @ts-ignore\r\n\t parent = parent._original;\r\n\t }\r\n\t const isCompiled = isTrue(options._compiled);\r\n\t const needNormalization = !isCompiled;\r\n\t this.data = data;\r\n\t this.props = props;\r\n\t this.children = children;\r\n\t this.parent = parent;\r\n\t this.listeners = data.on || emptyObject;\r\n\t this.injections = resolveInject(options.inject, parent);\r\n\t this.slots = () => {\r\n\t if (!this.$slots) {\r\n\t normalizeScopedSlots(parent, data.scopedSlots, (this.$slots = resolveSlots(children, parent)));\r\n\t }\r\n\t return this.$slots;\r\n\t };\r\n\t Object.defineProperty(this, 'scopedSlots', {\r\n\t enumerable: true,\r\n\t get() {\r\n\t return normalizeScopedSlots(parent, data.scopedSlots, this.slots());\r\n\t }\r\n\t });\r\n\t // support for compiled functional template\r\n\t if (isCompiled) {\r\n\t // exposing $options for renderStatic()\r\n\t this.$options = options;\r\n\t // pre-resolve slots for renderSlot()\r\n\t this.$slots = this.slots();\r\n\t this.$scopedSlots = normalizeScopedSlots(parent, data.scopedSlots, this.$slots);\r\n\t }\r\n\t if (options._scopeId) {\r\n\t this._c = (a, b, c, d) => {\r\n\t const vnode = createElement$1(contextVm, a, b, c, d, needNormalization);\r\n\t if (vnode && !isArray(vnode)) {\r\n\t vnode.fnScopeId = options._scopeId;\r\n\t vnode.fnContext = parent;\r\n\t }\r\n\t return vnode;\r\n\t };\r\n\t }\r\n\t else {\r\n\t this._c = (a, b, c, d) => createElement$1(contextVm, a, b, c, d, needNormalization);\r\n\t }\r\n\t}\r\n\tinstallRenderHelpers(FunctionalRenderContext.prototype);\r\n\tfunction createFunctionalComponent(Ctor, propsData, data, contextVm, children) {\r\n\t const options = Ctor.options;\r\n\t const props = {};\r\n\t const propOptions = options.props;\r\n\t if (isDef(propOptions)) {\r\n\t for (const key in propOptions) {\r\n\t props[key] = validateProp(key, propOptions, propsData || emptyObject);\r\n\t }\r\n\t }\r\n\t else {\r\n\t if (isDef(data.attrs))\r\n\t mergeProps(props, data.attrs);\r\n\t if (isDef(data.props))\r\n\t mergeProps(props, data.props);\r\n\t }\r\n\t const renderContext = new FunctionalRenderContext(data, props, children, contextVm, Ctor);\r\n\t const vnode = options.render.call(null, renderContext._c, renderContext);\r\n\t if (vnode instanceof VNode) {\r\n\t return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext);\r\n\t }\r\n\t else if (isArray(vnode)) {\r\n\t const vnodes = normalizeChildren(vnode) || [];\r\n\t const res = new Array(vnodes.length);\r\n\t for (let i = 0; i < vnodes.length; i++) {\r\n\t res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\r\n\t }\r\n\t return res;\r\n\t }\r\n\t}\r\n\tfunction cloneAndMarkFunctionalResult(vnode, data, contextVm, options, renderContext) {\r\n\t // #7817 clone node before setting fnContext, otherwise if the node is reused\r\n\t // (e.g. it was from a cached normal slot) the fnContext causes named slots\r\n\t // that should not be matched to match.\r\n\t const clone = cloneVNode(vnode);\r\n\t clone.fnContext = contextVm;\r\n\t clone.fnOptions = options;\r\n\t {\r\n\t (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext =\r\n\t renderContext;\r\n\t }\r\n\t if (data.slot) {\r\n\t (clone.data || (clone.data = {})).slot = data.slot;\r\n\t }\r\n\t return clone;\r\n\t}\r\n\tfunction mergeProps(to, from) {\r\n\t for (const key in from) {\r\n\t to[camelize(key)] = from[key];\r\n\t }\r\n\t}\n\n\tfunction getComponentName(options) {\r\n\t return options.name || options.__name || options._componentTag;\r\n\t}\r\n\t// inline hooks to be invoked on component VNodes during patch\r\n\tconst componentVNodeHooks = {\r\n\t init(vnode, hydrating) {\r\n\t if (vnode.componentInstance &&\r\n\t !vnode.componentInstance._isDestroyed &&\r\n\t vnode.data.keepAlive) {\r\n\t // kept-alive components, treat as a patch\r\n\t const mountedNode = vnode; // work around flow\r\n\t componentVNodeHooks.prepatch(mountedNode, mountedNode);\r\n\t }\r\n\t else {\r\n\t const child = (vnode.componentInstance = createComponentInstanceForVnode(vnode, activeInstance));\r\n\t child.$mount(hydrating ? vnode.elm : undefined, hydrating);\r\n\t }\r\n\t },\r\n\t prepatch(oldVnode, vnode) {\r\n\t const options = vnode.componentOptions;\r\n\t const child = (vnode.componentInstance = oldVnode.componentInstance);\r\n\t updateChildComponent(child, options.propsData, // updated props\r\n\t options.listeners, // updated listeners\r\n\t vnode, // new parent vnode\r\n\t options.children // new children\r\n\t );\r\n\t },\r\n\t insert(vnode) {\r\n\t const { context, componentInstance } = vnode;\r\n\t if (!componentInstance._isMounted) {\r\n\t componentInstance._isMounted = true;\r\n\t callHook$1(componentInstance, 'mounted');\r\n\t }\r\n\t if (vnode.data.keepAlive) {\r\n\t if (context._isMounted) {\r\n\t // vue-router#1212\r\n\t // During updates, a kept-alive component's child components may\r\n\t // change, so directly walking the tree here may call activated hooks\r\n\t // on incorrect children. Instead we push them into a queue which will\r\n\t // be processed after the whole patch process ended.\r\n\t queueActivatedComponent(componentInstance);\r\n\t }\r\n\t else {\r\n\t activateChildComponent(componentInstance, true /* direct */);\r\n\t }\r\n\t }\r\n\t },\r\n\t destroy(vnode) {\r\n\t const { componentInstance } = vnode;\r\n\t if (!componentInstance._isDestroyed) {\r\n\t if (!vnode.data.keepAlive) {\r\n\t componentInstance.$destroy();\r\n\t }\r\n\t else {\r\n\t deactivateChildComponent(componentInstance, true /* direct */);\r\n\t }\r\n\t }\r\n\t }\r\n\t};\r\n\tconst hooksToMerge = Object.keys(componentVNodeHooks);\r\n\tfunction createComponent(Ctor, data, context, children, tag) {\r\n\t if (isUndef(Ctor)) {\r\n\t return;\r\n\t }\r\n\t const baseCtor = context.$options._base;\r\n\t // plain options object: turn it into a constructor\r\n\t if (isObject(Ctor)) {\r\n\t Ctor = baseCtor.extend(Ctor);\r\n\t }\r\n\t // if at this stage it's not a constructor or an async component factory,\r\n\t // reject.\r\n\t if (typeof Ctor !== 'function') {\r\n\t {\r\n\t warn(`Invalid Component definition: ${String(Ctor)}`, context);\r\n\t }\r\n\t return;\r\n\t }\r\n\t // async component\r\n\t let asyncFactory;\r\n\t // @ts-expect-error\r\n\t if (isUndef(Ctor.cid)) {\r\n\t asyncFactory = Ctor;\r\n\t Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\r\n\t if (Ctor === undefined) {\r\n\t // return a placeholder node for async component, which is rendered\r\n\t // as a comment node but preserves all the raw information for the node.\r\n\t // the information will be used for async server-rendering and hydration.\r\n\t return createAsyncPlaceholder(asyncFactory, data, context, children, tag);\r\n\t }\r\n\t }\r\n\t data = data || {};\r\n\t // resolve constructor options in case global mixins are applied after\r\n\t // component constructor creation\r\n\t resolveConstructorOptions(Ctor);\r\n\t // transform component v-model data into props & events\r\n\t if (isDef(data.model)) {\r\n\t // @ts-expect-error\r\n\t transformModel(Ctor.options, data);\r\n\t }\r\n\t // extract props\r\n\t // @ts-expect-error\r\n\t const propsData = extractPropsFromVNodeData(data, Ctor, tag);\r\n\t // functional component\r\n\t // @ts-expect-error\r\n\t if (isTrue(Ctor.options.functional)) {\r\n\t return createFunctionalComponent(Ctor, propsData, data, context, children);\r\n\t }\r\n\t // extract listeners, since these needs to be treated as\r\n\t // child component listeners instead of DOM listeners\r\n\t const listeners = data.on;\r\n\t // replace with listeners with .native modifier\r\n\t // so it gets processed during parent component patch.\r\n\t data.on = data.nativeOn;\r\n\t // @ts-expect-error\r\n\t if (isTrue(Ctor.options.abstract)) {\r\n\t // abstract components do not keep anything\r\n\t // other than props & listeners & slot\r\n\t // work around flow\r\n\t const slot = data.slot;\r\n\t data = {};\r\n\t if (slot) {\r\n\t data.slot = slot;\r\n\t }\r\n\t }\r\n\t // install component management hooks onto the placeholder node\r\n\t installComponentHooks(data);\r\n\t // return a placeholder vnode\r\n\t // @ts-expect-error\r\n\t const name = getComponentName(Ctor.options) || tag;\r\n\t const vnode = new VNode(\r\n\t // @ts-expect-error\r\n\t `vue-component-${Ctor.cid}${name ? `-${name}` : ''}`, data, undefined, undefined, undefined, context, \r\n\t // @ts-expect-error\r\n\t { Ctor, propsData, listeners, tag, children }, asyncFactory);\r\n\t return vnode;\r\n\t}\r\n\tfunction createComponentInstanceForVnode(\r\n\t// we know it's MountedComponentVNode but flow doesn't\r\n\tvnode, \r\n\t// activeInstance in lifecycle state\r\n\tparent) {\r\n\t const options = {\r\n\t _isComponent: true,\r\n\t _parentVnode: vnode,\r\n\t parent\r\n\t };\r\n\t // check inline-template render functions\r\n\t const inlineTemplate = vnode.data.inlineTemplate;\r\n\t if (isDef(inlineTemplate)) {\r\n\t options.render = inlineTemplate.render;\r\n\t options.staticRenderFns = inlineTemplate.staticRenderFns;\r\n\t }\r\n\t return new vnode.componentOptions.Ctor(options);\r\n\t}\r\n\tfunction installComponentHooks(data) {\r\n\t const hooks = data.hook || (data.hook = {});\r\n\t for (let i = 0; i < hooksToMerge.length; i++) {\r\n\t const key = hooksToMerge[i];\r\n\t const existing = hooks[key];\r\n\t const toMerge = componentVNodeHooks[key];\r\n\t // @ts-expect-error\r\n\t if (existing !== toMerge && !(existing && existing._merged)) {\r\n\t hooks[key] = existing ? mergeHook(toMerge, existing) : toMerge;\r\n\t }\r\n\t }\r\n\t}\r\n\tfunction mergeHook(f1, f2) {\r\n\t const merged = (a, b) => {\r\n\t // flow complains about extra args which is why we use any\r\n\t f1(a, b);\r\n\t f2(a, b);\r\n\t };\r\n\t merged._merged = true;\r\n\t return merged;\r\n\t}\r\n\t// transform component v-model info (value and callback) into\r\n\t// prop and event handler respectively.\r\n\tfunction transformModel(options, data) {\r\n\t const prop = (options.model && options.model.prop) || 'value';\r\n\t const event = (options.model && options.model.event) || 'input';\r\n\t (data.attrs || (data.attrs = {}))[prop] = data.model.value;\r\n\t const on = data.on || (data.on = {});\r\n\t const existing = on[event];\r\n\t const callback = data.model.callback;\r\n\t if (isDef(existing)) {\r\n\t if (isArray(existing)\r\n\t ? existing.indexOf(callback) === -1\r\n\t : existing !== callback) {\r\n\t on[event] = [callback].concat(existing);\r\n\t }\r\n\t }\r\n\t else {\r\n\t on[event] = callback;\r\n\t }\r\n\t}\n\n\tlet warn = noop;\r\n\tlet tip = noop;\r\n\tlet generateComponentTrace; // work around flow check\r\n\tlet formatComponentName;\r\n\t{\r\n\t const hasConsole = typeof console !== 'undefined';\r\n\t const classifyRE = /(?:^|[-_])(\\w)/g;\r\n\t const classify = str => str.replace(classifyRE, c => c.toUpperCase()).replace(/[-_]/g, '');\r\n\t warn = (msg, vm = currentInstance) => {\r\n\t const trace = vm ? generateComponentTrace(vm) : '';\r\n\t if (config.warnHandler) {\r\n\t config.warnHandler.call(null, msg, vm, trace);\r\n\t }\r\n\t else if (hasConsole && !config.silent) {\r\n\t console.error(`[Vue warn]: ${msg}${trace}`);\r\n\t }\r\n\t };\r\n\t tip = (msg, vm) => {\r\n\t if (hasConsole && !config.silent) {\r\n\t console.warn(`[Vue tip]: ${msg}` + (vm ? generateComponentTrace(vm) : ''));\r\n\t }\r\n\t };\r\n\t formatComponentName = (vm, includeFile) => {\r\n\t if (vm.$root === vm) {\r\n\t return '<Root>';\r\n\t }\r\n\t const options = isFunction(vm) && vm.cid != null\r\n\t ? vm.options\r\n\t : vm._isVue\r\n\t ? vm.$options || vm.constructor.options\r\n\t : vm;\r\n\t let name = getComponentName(options);\r\n\t const file = options.__file;\r\n\t if (!name && file) {\r\n\t const match = file.match(/([^/\\\\]+)\\.vue$/);\r\n\t name = match && match[1];\r\n\t }\r\n\t return ((name ? `<${classify(name)}>` : `<Anonymous>`) +\r\n\t (file && includeFile !== false ? ` at ${file}` : ''));\r\n\t };\r\n\t const repeat = (str, n) => {\r\n\t let res = '';\r\n\t while (n) {\r\n\t if (n % 2 === 1)\r\n\t res += str;\r\n\t if (n > 1)\r\n\t str += str;\r\n\t n >>= 1;\r\n\t }\r\n\t return res;\r\n\t };\r\n\t generateComponentTrace = (vm) => {\r\n\t if (vm._isVue && vm.$parent) {\r\n\t const tree = [];\r\n\t let currentRecursiveSequence = 0;\r\n\t while (vm) {\r\n\t if (tree.length > 0) {\r\n\t const last = tree[tree.length - 1];\r\n\t if (last.constructor === vm.constructor) {\r\n\t currentRecursiveSequence++;\r\n\t vm = vm.$parent;\r\n\t continue;\r\n\t }\r\n\t else if (currentRecursiveSequence > 0) {\r\n\t tree[tree.length - 1] = [last, currentRecursiveSequence];\r\n\t currentRecursiveSequence = 0;\r\n\t }\r\n\t }\r\n\t tree.push(vm);\r\n\t vm = vm.$parent;\r\n\t }\r\n\t return ('\\n\\nfound in\\n\\n' +\r\n\t tree\r\n\t .map((vm, i) => `${i === 0 ? '---> ' : repeat(' ', 5 + i * 2)}${isArray(vm)\r\n\t ? `${formatComponentName(vm[0])}... (${vm[1]} recursive calls)`\r\n\t : formatComponentName(vm)}`)\r\n\t .join('\\n'));\r\n\t }\r\n\t else {\r\n\t return `\\n\\n(found in ${formatComponentName(vm)})`;\r\n\t }\r\n\t };\r\n\t}\n\n\t/**\r\n\t * Option overwriting strategies are functions that handle\r\n\t * how to merge a parent option value and a child option\r\n\t * value into the final value.\r\n\t */\r\n\tconst strats = config.optionMergeStrategies;\r\n\t/**\r\n\t * Options with restrictions\r\n\t */\r\n\t{\r\n\t strats.el = strats.propsData = function (parent, child, vm, key) {\r\n\t if (!vm) {\r\n\t warn(`option \"${key}\" can only be used during instance ` +\r\n\t 'creation with the `new` keyword.');\r\n\t }\r\n\t return defaultStrat(parent, child);\r\n\t };\r\n\t}\r\n\t/**\r\n\t * Helper that recursively merges two data objects together.\r\n\t */\r\n\tfunction mergeData(to, from) {\r\n\t if (!from)\r\n\t return to;\r\n\t let key, toVal, fromVal;\r\n\t const keys = hasSymbol\r\n\t ? Reflect.ownKeys(from)\r\n\t : Object.keys(from);\r\n\t for (let i = 0; i < keys.length; i++) {\r\n\t key = keys[i];\r\n\t // in case the object is already observed...\r\n\t if (key === '__ob__')\r\n\t continue;\r\n\t toVal = to[key];\r\n\t fromVal = from[key];\r\n\t if (!hasOwn(to, key)) {\r\n\t set(to, key, fromVal);\r\n\t }\r\n\t else if (toVal !== fromVal &&\r\n\t isPlainObject(toVal) &&\r\n\t isPlainObject(fromVal)) {\r\n\t mergeData(toVal, fromVal);\r\n\t }\r\n\t }\r\n\t return to;\r\n\t}\r\n\t/**\r\n\t * Data\r\n\t */\r\n\tfunction mergeDataOrFn(parentVal, childVal, vm) {\r\n\t if (!vm) {\r\n\t // in a Vue.extend merge, both should be functions\r\n\t if (!childVal) {\r\n\t return parentVal;\r\n\t }\r\n\t if (!parentVal) {\r\n\t return childVal;\r\n\t }\r\n\t // when parentVal & childVal are both present,\r\n\t // we need to return a function that returns the\r\n\t // merged result of both functions... no need to\r\n\t // check if parentVal is a function here because\r\n\t // it has to be a function to pass previous merges.\r\n\t return function mergedDataFn() {\r\n\t return mergeData(isFunction(childVal) ? childVal.call(this, this) : childVal, isFunction(parentVal) ? parentVal.call(this, this) : parentVal);\r\n\t };\r\n\t }\r\n\t else {\r\n\t return function mergedInstanceDataFn() {\r\n\t // instance merge\r\n\t const instanceData = isFunction(childVal)\r\n\t ? childVal.call(vm, vm)\r\n\t : childVal;\r\n\t const defaultData = isFunction(parentVal)\r\n\t ? parentVal.call(vm, vm)\r\n\t : parentVal;\r\n\t if (instanceData) {\r\n\t return mergeData(instanceData, defaultData);\r\n\t }\r\n\t else {\r\n\t return defaultData;\r\n\t }\r\n\t };\r\n\t }\r\n\t}\r\n\tstrats.data = function (parentVal, childVal, vm) {\r\n\t if (!vm) {\r\n\t if (childVal && typeof childVal !== 'function') {\r\n\t warn('The \"data\" option should be a function ' +\r\n\t 'that returns a per-instance value in component ' +\r\n\t 'definitions.', vm);\r\n\t return parentVal;\r\n\t }\r\n\t return mergeDataOrFn(parentVal, childVal);\r\n\t }\r\n\t return mergeDataOrFn(parentVal, childVal, vm);\r\n\t};\r\n\t/**\r\n\t * Hooks and props are merged as arrays.\r\n\t */\r\n\tfunction mergeLifecycleHook(parentVal, childVal) {\r\n\t const res = childVal\r\n\t ? parentVal\r\n\t ? parentVal.concat(childVal)\r\n\t : isArray(childVal)\r\n\t ? childVal\r\n\t : [childVal]\r\n\t : parentVal;\r\n\t return res ? dedupeHooks(res) : res;\r\n\t}\r\n\tfunction dedupeHooks(hooks) {\r\n\t const res = [];\r\n\t for (let i = 0; i < hooks.length; i++) {\r\n\t if (res.indexOf(hooks[i]) === -1) {\r\n\t res.push(hooks[i]);\r\n\t }\r\n\t }\r\n\t return res;\r\n\t}\r\n\tLIFECYCLE_HOOKS.forEach(hook => {\r\n\t strats[hook] = mergeLifecycleHook;\r\n\t});\r\n\t/**\r\n\t * Assets\r\n\t *\r\n\t * When a vm is present (instance creation), we need to do\r\n\t * a three-way merge between constructor options, instance\r\n\t * options and parent options.\r\n\t */\r\n\tfunction mergeAssets(parentVal, childVal, vm, key) {\r\n\t const res = Object.create(parentVal || null);\r\n\t if (childVal) {\r\n\t assertObjectType(key, childVal, vm);\r\n\t return extend(res, childVal);\r\n\t }\r\n\t else {\r\n\t return res;\r\n\t }\r\n\t}\r\n\tASSET_TYPES.forEach(function (type) {\r\n\t strats[type + 's'] = mergeAssets;\r\n\t});\r\n\t/**\r\n\t * Watchers.\r\n\t *\r\n\t * Watchers hashes should not overwrite one\r\n\t * another, so we merge them as arrays.\r\n\t */\r\n\tstrats.watch = function (parentVal, childVal, vm, key) {\r\n\t // work around Firefox's Object.prototype.watch...\r\n\t //@ts-expect-error work around\r\n\t if (parentVal === nativeWatch)\r\n\t parentVal = undefined;\r\n\t //@ts-expect-error work around\r\n\t if (childVal === nativeWatch)\r\n\t childVal = undefined;\r\n\t /* istanbul ignore if */\r\n\t if (!childVal)\r\n\t return Object.create(parentVal || null);\r\n\t {\r\n\t assertObjectType(key, childVal, vm);\r\n\t }\r\n\t if (!parentVal)\r\n\t return childVal;\r\n\t const ret = {};\r\n\t extend(ret, parentVal);\r\n\t for (const key in childVal) {\r\n\t let parent = ret[key];\r\n\t const child = childVal[key];\r\n\t if (parent && !isArray(parent)) {\r\n\t parent = [parent];\r\n\t }\r\n\t ret[key] = parent ? parent.concat(child) : isArray(child) ? child : [child];\r\n\t }\r\n\t return ret;\r\n\t};\r\n\t/**\r\n\t * Other object hashes.\r\n\t */\r\n\tstrats.props =\r\n\t strats.methods =\r\n\t strats.inject =\r\n\t strats.computed =\r\n\t function (parentVal, childVal, vm, key) {\r\n\t if (childVal && true) {\r\n\t assertObjectType(key, childVal, vm);\r\n\t }\r\n\t if (!parentVal)\r\n\t return childVal;\r\n\t const ret = Object.create(null);\r\n\t extend(ret, parentVal);\r\n\t if (childVal)\r\n\t extend(ret, childVal);\r\n\t return ret;\r\n\t };\r\n\tstrats.provide = mergeDataOrFn;\r\n\t/**\r\n\t * Default strategy.\r\n\t */\r\n\tconst defaultStrat = function (parentVal, childVal) {\r\n\t return childVal === undefined ? parentVal : childVal;\r\n\t};\r\n\t/**\r\n\t * Validate component names\r\n\t */\r\n\tfunction checkComponents(options) {\r\n\t for (const key in options.components) {\r\n\t validateComponentName(key);\r\n\t }\r\n\t}\r\n\tfunction validateComponentName(name) {\r\n\t if (!new RegExp(`^[a-zA-Z][\\\\-\\\\.0-9_${unicodeRegExp.source}]*$`).test(name)) {\r\n\t warn('Invalid component name: \"' +\r\n\t name +\r\n\t '\". Component names ' +\r\n\t 'should conform to valid custom element name in html5 specification.');\r\n\t }\r\n\t if (isBuiltInTag(name) || config.isReservedTag(name)) {\r\n\t warn('Do not use built-in or reserved HTML elements as component ' +\r\n\t 'id: ' +\r\n\t name);\r\n\t }\r\n\t}\r\n\t/**\r\n\t * Ensure all props option syntax are normalized into the\r\n\t * Object-based format.\r\n\t */\r\n\tfunction normalizeProps(options, vm) {\r\n\t const props = options.props;\r\n\t if (!props)\r\n\t return;\r\n\t const res = {};\r\n\t let i, val, name;\r\n\t if (isArray(props)) {\r\n\t i = props.length;\r\n\t while (i--) {\r\n\t val = props[i];\r\n\t if (typeof val === 'string') {\r\n\t name = camelize(val);\r\n\t res[name] = { type: null };\r\n\t }\r\n\t else {\r\n\t warn('props must be strings when using array syntax.');\r\n\t }\r\n\t }\r\n\t }\r\n\t else if (isPlainObject(props)) {\r\n\t for (const key in props) {\r\n\t val = props[key];\r\n\t name = camelize(key);\r\n\t res[name] = isPlainObject(val) ? val : { type: val };\r\n\t }\r\n\t }\r\n\t else {\r\n\t warn(`Invalid value for option \"props\": expected an Array or an Object, ` +\r\n\t `but got ${toRawType(props)}.`, vm);\r\n\t }\r\n\t options.props = res;\r\n\t}\r\n\t/**\r\n\t * Normalize all injections into Object-based format\r\n\t */\r\n\tfunction normalizeInject(options, vm) {\r\n\t const inject = options.inject;\r\n\t if (!inject)\r\n\t return;\r\n\t const normalized = (options.inject = {});\r\n\t if (isArray(inject)) {\r\n\t for (let i = 0; i < inject.length; i++) {\r\n\t normalized[inject[i]] = { from: inject[i] };\r\n\t }\r\n\t }\r\n\t else if (isPlainObject(inject)) {\r\n\t for (const key in inject) {\r\n\t const val = inject[key];\r\n\t normalized[key] = isPlainObject(val)\r\n\t ? extend({ from: key }, val)\r\n\t : { from: val };\r\n\t }\r\n\t }\r\n\t else {\r\n\t warn(`Invalid value for option \"inject\": expected an Array or an Object, ` +\r\n\t `but got ${toRawType(inject)}.`, vm);\r\n\t }\r\n\t}\r\n\t/**\r\n\t * Normalize raw function directives into object format.\r\n\t */\r\n\tfunction normalizeDirectives$1(options) {\r\n\t const dirs = options.directives;\r\n\t if (dirs) {\r\n\t for (const key in dirs) {\r\n\t const def = dirs[key];\r\n\t if (isFunction(def)) {\r\n\t dirs[key] = { bind: def, update: def };\r\n\t }\r\n\t }\r\n\t }\r\n\t}\r\n\tfunction assertObjectType(name, value, vm) {\r\n\t if (!isPlainObject(value)) {\r\n\t warn(`Invalid value for option \"${name}\": expected an Object, ` +\r\n\t `but got ${toRawType(value)}.`, vm);\r\n\t }\r\n\t}\r\n\t/**\r\n\t * Merge two option objects into a new one.\r\n\t * Core utility used in both instantiation and inheritance.\r\n\t */\r\n\tfunction mergeOptions(parent, child, vm) {\r\n\t {\r\n\t checkComponents(child);\r\n\t }\r\n\t if (isFunction(child)) {\r\n\t // @ts-expect-error\r\n\t child = child.options;\r\n\t }\r\n\t normalizeProps(child, vm);\r\n\t normalizeInject(child, vm);\r\n\t normalizeDirectives$1(child);\r\n\t // Apply extends and mixins on the child options,\r\n\t // but only if it is a raw options object that isn't\r\n\t // the result of another mergeOptions call.\r\n\t // Only merged options has the _base property.\r\n\t if (!child._base) {\r\n\t if (child.extends) {\r\n\t parent = mergeOptions(parent, child.extends, vm);\r\n\t }\r\n\t if (child.mixins) {\r\n\t for (let i = 0, l = child.mixins.length; i < l; i++) {\r\n\t parent = mergeOptions(parent, child.mixins[i], vm);\r\n\t }\r\n\t }\r\n\t }\r\n\t const options = {};\r\n\t let key;\r\n\t for (key in parent) {\r\n\t mergeField(key);\r\n\t }\r\n\t for (key in child) {\r\n\t if (!hasOwn(parent, key)) {\r\n\t mergeField(key);\r\n\t }\r\n\t }\r\n\t function mergeField(key) {\r\n\t const strat = strats[key] || defaultStrat;\r\n\t options[key] = strat(parent[key], child[key], vm, key);\r\n\t }\r\n\t return options;\r\n\t}\r\n\t/**\r\n\t * Resolve an asset.\r\n\t * This function is used because child instances need access\r\n\t * to assets defined in its ancestor chain.\r\n\t */\r\n\tfunction resolveAsset(options, type, id, warnMissing) {\r\n\t /* istanbul ignore if */\r\n\t if (typeof id !== 'string') {\r\n\t return;\r\n\t }\r\n\t const assets = options[type];\r\n\t // check local registration variations first\r\n\t if (hasOwn(assets, id))\r\n\t return assets[id];\r\n\t const camelizedId = camelize(id);\r\n\t if (hasOwn(assets, camelizedId))\r\n\t return assets[camelizedId];\r\n\t const PascalCaseId = capitalize(camelizedId);\r\n\t if (hasOwn(assets, PascalCaseId))\r\n\t return assets[PascalCaseId];\r\n\t // fallback to prototype chain\r\n\t const res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\r\n\t if (warnMissing && !res) {\r\n\t warn('Failed to resolve ' + type.slice(0, -1) + ': ' + id);\r\n\t }\r\n\t return res;\r\n\t}\n\n\tfunction validateProp(key, propOptions, propsData, vm) {\r\n\t const prop = propOptions[key];\r\n\t const absent = !hasOwn(propsData, key);\r\n\t let value = propsData[key];\r\n\t // boolean casting\r\n\t const booleanIndex = getTypeIndex(Boolean, prop.type);\r\n\t if (booleanIndex > -1) {\r\n\t if (absent && !hasOwn(prop, 'default')) {\r\n\t value = false;\r\n\t }\r\n\t else if (value === '' || value === hyphenate(key)) {\r\n\t // only cast empty string / same name to boolean if\r\n\t // boolean has higher priority\r\n\t const stringIndex = getTypeIndex(String, prop.type);\r\n\t if (stringIndex < 0 || booleanIndex < stringIndex) {\r\n\t value = true;\r\n\t }\r\n\t }\r\n\t }\r\n\t // check default value\r\n\t if (value === undefined) {\r\n\t value = getPropDefaultValue(vm, prop, key);\r\n\t // since the default value is a fresh copy,\r\n\t // make sure to observe it.\r\n\t const prevShouldObserve = shouldObserve;\r\n\t toggleObserving(true);\r\n\t observe(value);\r\n\t toggleObserving(prevShouldObserve);\r\n\t }\r\n\t {\r\n\t assertProp(prop, key, value, vm, absent);\r\n\t }\r\n\t return value;\r\n\t}\r\n\t/**\r\n\t * Get the default value of a prop.\r\n\t */\r\n\tfunction getPropDefaultValue(vm, prop, key) {\r\n\t // no default, return undefined\r\n\t if (!hasOwn(prop, 'default')) {\r\n\t return undefined;\r\n\t }\r\n\t const def = prop.default;\r\n\t // warn against non-factory defaults for Object & Array\r\n\t if (isObject(def)) {\r\n\t warn('Invalid default value for prop \"' +\r\n\t key +\r\n\t '\": ' +\r\n\t 'Props with type Object/Array must use a factory function ' +\r\n\t 'to return the default value.', vm);\r\n\t }\r\n\t // the raw prop value was also undefined from previous render,\r\n\t // return previous default value to avoid unnecessary watcher trigger\r\n\t if (vm &&\r\n\t vm.$options.propsData &&\r\n\t vm.$options.propsData[key] === undefined &&\r\n\t vm._props[key] !== undefined) {\r\n\t return vm._props[key];\r\n\t }\r\n\t // call factory function for non-Function types\r\n\t // a value is Function if its prototype is function even across different execution context\r\n\t return isFunction(def) && getType(prop.type) !== 'Function'\r\n\t ? def.call(vm)\r\n\t : def;\r\n\t}\r\n\t/**\r\n\t * Assert whether a prop is valid.\r\n\t */\r\n\tfunction assertProp(prop, name, value, vm, absent) {\r\n\t if (prop.required && absent) {\r\n\t warn('Missing required prop: \"' + name + '\"', vm);\r\n\t return;\r\n\t }\r\n\t if (value == null && !prop.required) {\r\n\t return;\r\n\t }\r\n\t let type = prop.type;\r\n\t let valid = !type || type === true;\r\n\t const expectedTypes = [];\r\n\t if (type) {\r\n\t if (!isArray(type)) {\r\n\t type = [type];\r\n\t }\r\n\t for (let i = 0; i < type.length && !valid; i++) {\r\n\t const assertedType = assertType(value, type[i], vm);\r\n\t expectedTypes.push(assertedType.expectedType || '');\r\n\t valid = assertedType.valid;\r\n\t }\r\n\t }\r\n\t const haveExpectedTypes = expectedTypes.some(t => t);\r\n\t if (!valid && haveExpectedTypes) {\r\n\t warn(getInvalidTypeMessage(name, value, expectedTypes), vm);\r\n\t return;\r\n\t }\r\n\t const validator = prop.validator;\r\n\t if (validator) {\r\n\t if (!validator(value)) {\r\n\t warn('Invalid prop: custom validator check failed for prop \"' + name + '\".', vm);\r\n\t }\r\n\t }\r\n\t}\r\n\tconst simpleCheckRE = /^(String|Number|Boolean|Function|Symbol|BigInt)$/;\r\n\tfunction assertType(value, type, vm) {\r\n\t let valid;\r\n\t const expectedType = getType(type);\r\n\t if (simpleCheckRE.test(expectedType)) {\r\n\t const t = typeof value;\r\n\t valid = t === expectedType.toLowerCase();\r\n\t // for primitive wrapper objects\r\n\t if (!valid && t === 'object') {\r\n\t valid = value instanceof type;\r\n\t }\r\n\t }\r\n\t else if (expectedType === 'Object') {\r\n\t valid = isPlainObject(value);\r\n\t }\r\n\t else if (expectedType === 'Array') {\r\n\t valid = isArray(value);\r\n\t }\r\n\t else {\r\n\t try {\r\n\t valid = value instanceof type;\r\n\t }\r\n\t catch (e) {\r\n\t warn('Invalid prop type: \"' + String(type) + '\" is not a constructor', vm);\r\n\t valid = false;\r\n\t }\r\n\t }\r\n\t return {\r\n\t valid,\r\n\t expectedType\r\n\t };\r\n\t}\r\n\tconst functionTypeCheckRE = /^\\s*function (\\w+)/;\r\n\t/**\r\n\t * Use function string name to check built-in types,\r\n\t * because a simple equality check will fail when running\r\n\t * across different vms / iframes.\r\n\t */\r\n\tfunction getType(fn) {\r\n\t const match = fn && fn.toString().match(functionTypeCheckRE);\r\n\t return match ? match[1] : '';\r\n\t}\r\n\tfunction isSameType(a, b) {\r\n\t return getType(a) === getType(b);\r\n\t}\r\n\tfunction getTypeIndex(type, expectedTypes) {\r\n\t if (!isArray(expectedTypes)) {\r\n\t return isSameType(expectedTypes, type) ? 0 : -1;\r\n\t }\r\n\t for (let i = 0, len = expectedTypes.length; i < len; i++) {\r\n\t if (isSameType(expectedTypes[i], type)) {\r\n\t return i;\r\n\t }\r\n\t }\r\n\t return -1;\r\n\t}\r\n\tfunction getInvalidTypeMessage(name, value, expectedTypes) {\r\n\t let message = `Invalid prop: type check failed for prop \"${name}\".` +\r\n\t ` Expected ${expectedTypes.map(capitalize).join(', ')}`;\r\n\t const expectedType = expectedTypes[0];\r\n\t const receivedType = toRawType(value);\r\n\t // check if we need to specify expected value\r\n\t if (expectedTypes.length === 1 &&\r\n\t isExplicable(expectedType) &&\r\n\t isExplicable(typeof value) &&\r\n\t !isBoolean(expectedType, receivedType)) {\r\n\t message += ` with value ${styleValue(value, expectedType)}`;\r\n\t }\r\n\t message += `, got ${receivedType} `;\r\n\t // check if we need to specify received value\r\n\t if (isExplicable(receivedType)) {\r\n\t message += `with value ${styleValue(value, receivedType)}.`;\r\n\t }\r\n\t return message;\r\n\t}\r\n\tfunction styleValue(value, type) {\r\n\t if (type === 'String') {\r\n\t return `\"${value}\"`;\r\n\t }\r\n\t else if (type === 'Number') {\r\n\t return `${Number(value)}`;\r\n\t }\r\n\t else {\r\n\t return `${value}`;\r\n\t }\r\n\t}\r\n\tconst EXPLICABLE_TYPES = ['string', 'number', 'boolean'];\r\n\tfunction isExplicable(value) {\r\n\t return EXPLICABLE_TYPES.some(elem => value.toLowerCase() === elem);\r\n\t}\r\n\tfunction isBoolean(...args) {\r\n\t return args.some(elem => elem.toLowerCase() === 'boolean');\r\n\t}\n\n\t/* not type checking this file because flow doesn't play well with Proxy */\r\n\tlet initProxy;\r\n\t{\r\n\t const allowedGlobals = makeMap('Infinity,undefined,NaN,isFinite,isNaN,' +\r\n\t 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\r\n\t 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' +\r\n\t 'require' // for Webpack/Browserify\r\n\t );\r\n\t const warnNonPresent = (target, key) => {\r\n\t warn(`Property or method \"${key}\" is not defined on the instance but ` +\r\n\t 'referenced during render. Make sure that this property is reactive, ' +\r\n\t 'either in the data option, or for class-based components, by ' +\r\n\t 'initializing the property. ' +\r\n\t 'See: https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', target);\r\n\t };\r\n\t const warnReservedPrefix = (target, key) => {\r\n\t warn(`Property \"${key}\" must be accessed with \"$data.${key}\" because ` +\r\n\t 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\r\n\t 'prevent conflicts with Vue internals. ' +\r\n\t 'See: https://v2.vuejs.org/v2/api/#data', target);\r\n\t };\r\n\t const hasProxy = typeof Proxy !== 'undefined' && isNative(Proxy);\r\n\t if (hasProxy) {\r\n\t const isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\r\n\t config.keyCodes = new Proxy(config.keyCodes, {\r\n\t set(target, key, value) {\r\n\t if (isBuiltInModifier(key)) {\r\n\t warn(`Avoid overwriting built-in modifier in config.keyCodes: .${key}`);\r\n\t return false;\r\n\t }\r\n\t else {\r\n\t target[key] = value;\r\n\t return true;\r\n\t }\r\n\t }\r\n\t });\r\n\t }\r\n\t const hasHandler = {\r\n\t has(target, key) {\r\n\t const has = key in target;\r\n\t const isAllowed = allowedGlobals(key) ||\r\n\t (typeof key === 'string' &&\r\n\t key.charAt(0) === '_' &&\r\n\t !(key in target.$data));\r\n\t if (!has && !isAllowed) {\r\n\t if (key in target.$data)\r\n\t warnReservedPrefix(target, key);\r\n\t else\r\n\t warnNonPresent(target, key);\r\n\t }\r\n\t return has || !isAllowed;\r\n\t }\r\n\t };\r\n\t const getHandler = {\r\n\t get(target, key) {\r\n\t if (typeof key === 'string' && !(key in target)) {\r\n\t if (key in target.$data)\r\n\t warnReservedPrefix(target, key);\r\n\t else\r\n\t warnNonPresent(target, key);\r\n\t }\r\n\t return target[key];\r\n\t }\r\n\t };\r\n\t initProxy = function initProxy(vm) {\r\n\t if (hasProxy) {\r\n\t // determine which proxy handler to use\r\n\t const options = vm.$options;\r\n\t const handlers = options.render && options.render._withStripped ? getHandler : hasHandler;\r\n\t vm._renderProxy = new Proxy(vm, handlers);\r\n\t }\r\n\t else {\r\n\t vm._renderProxy = vm;\r\n\t }\r\n\t };\r\n\t}\n\n\tconst sharedPropertyDefinition = {\r\n\t enumerable: true,\r\n\t configurable: true,\r\n\t get: noop,\r\n\t set: noop\r\n\t};\r\n\tfunction proxy(target, sourceKey, key) {\r\n\t sharedPropertyDefinition.get = function proxyGetter() {\r\n\t return this[sourceKey][key];\r\n\t };\r\n\t sharedPropertyDefinition.set = function proxySetter(val) {\r\n\t this[sourceKey][key] = val;\r\n\t };\r\n\t Object.defineProperty(target, key, sharedPropertyDefinition);\r\n\t}\r\n\tfunction initState(vm) {\r\n\t const opts = vm.$options;\r\n\t if (opts.props)\r\n\t initProps$1(vm, opts.props);\r\n\t // Composition API\r\n\t initSetup(vm);\r\n\t if (opts.methods)\r\n\t initMethods(vm, opts.methods);\r\n\t if (opts.data) {\r\n\t initData(vm);\r\n\t }\r\n\t else {\r\n\t const ob = observe((vm._data = {}));\r\n\t ob && ob.vmCount++;\r\n\t }\r\n\t if (opts.computed)\r\n\t initComputed$1(vm, opts.computed);\r\n\t if (opts.watch && opts.watch !== nativeWatch) {\r\n\t initWatch(vm, opts.watch);\r\n\t }\r\n\t}\r\n\tfunction initProps$1(vm, propsOptions) {\r\n\t const propsData = vm.$options.propsData || {};\r\n\t const props = (vm._props = shallowReactive({}));\r\n\t // cache prop keys so that future props updates can iterate using Array\r\n\t // instead of dynamic object key enumeration.\r\n\t const keys = (vm.$options._propKeys = []);\r\n\t const isRoot = !vm.$parent;\r\n\t // root instance props should be converted\r\n\t if (!isRoot) {\r\n\t toggleObserving(false);\r\n\t }\r\n\t for (const key in propsOptions) {\r\n\t keys.push(key);\r\n\t const value = validateProp(key, propsOptions, propsData, vm);\r\n\t /* istanbul ignore else */\r\n\t {\r\n\t const hyphenatedKey = hyphenate(key);\r\n\t if (isReservedAttribute(hyphenatedKey) ||\r\n\t config.isReservedAttr(hyphenatedKey)) {\r\n\t warn(`\"${hyphenatedKey}\" is a reserved attribute and cannot be used as component prop.`, vm);\r\n\t }\r\n\t defineReactive(props, key, value, () => {\r\n\t if (!isRoot && !isUpdatingChildComponent) {\r\n\t warn(`Avoid mutating a prop directly since the value will be ` +\r\n\t `overwritten whenever the parent component re-renders. ` +\r\n\t `Instead, use a data or computed property based on the prop's ` +\r\n\t `value. Prop being mutated: \"${key}\"`, vm);\r\n\t }\r\n\t });\r\n\t }\r\n\t // static props are already proxied on the component's prototype\r\n\t // during Vue.extend(). We only need to proxy props defined at\r\n\t // instantiation here.\r\n\t if (!(key in vm)) {\r\n\t proxy(vm, `_props`, key);\r\n\t }\r\n\t }\r\n\t toggleObserving(true);\r\n\t}\r\n\tfunction initData(vm) {\r\n\t let data = vm.$options.data;\r\n\t data = vm._data = isFunction(data) ? getData(data, vm) : data || {};\r\n\t if (!isPlainObject(data)) {\r\n\t data = {};\r\n\t warn('data functions should return an object:\\n' +\r\n\t 'https://v2.vuejs.org/v2/guide/components.html#data-Must-Be-a-Function', vm);\r\n\t }\r\n\t // proxy data on instance\r\n\t const keys = Object.keys(data);\r\n\t const props = vm.$options.props;\r\n\t const methods = vm.$options.methods;\r\n\t let i = keys.length;\r\n\t while (i--) {\r\n\t const key = keys[i];\r\n\t {\r\n\t if (methods && hasOwn(methods, key)) {\r\n\t warn(`Method \"${key}\" has already been defined as a data property.`, vm);\r\n\t }\r\n\t }\r\n\t if (props && hasOwn(props, key)) {\r\n\t warn(`The data property \"${key}\" is already declared as a prop. ` +\r\n\t `Use prop default value instead.`, vm);\r\n\t }\r\n\t else if (!isReserved(key)) {\r\n\t proxy(vm, `_data`, key);\r\n\t }\r\n\t }\r\n\t // observe data\r\n\t const ob = observe(data);\r\n\t ob && ob.vmCount++;\r\n\t}\r\n\tfunction getData(data, vm) {\r\n\t // #7573 disable dep collection when invoking data getters\r\n\t pushTarget();\r\n\t try {\r\n\t return data.call(vm, vm);\r\n\t }\r\n\t catch (e) {\r\n\t handleError(e, vm, `data()`);\r\n\t return {};\r\n\t }\r\n\t finally {\r\n\t popTarget();\r\n\t }\r\n\t}\r\n\tconst computedWatcherOptions = { lazy: true };\r\n\tfunction initComputed$1(vm, computed) {\r\n\t // $flow-disable-line\r\n\t const watchers = (vm._computedWatchers = Object.create(null));\r\n\t // computed properties are just getters during SSR\r\n\t const isSSR = isServerRendering();\r\n\t for (const key in computed) {\r\n\t const userDef = computed[key];\r\n\t const getter = isFunction(userDef) ? userDef : userDef.get;\r\n\t if (getter == null) {\r\n\t warn(`Getter is missing for computed property \"${key}\".`, vm);\r\n\t }\r\n\t if (!isSSR) {\r\n\t // create internal watcher for the computed property.\r\n\t watchers[key] = new Watcher(vm, getter || noop, noop, computedWatcherOptions);\r\n\t }\r\n\t // component-defined computed properties are already defined on the\r\n\t // component prototype. We only need to define computed properties defined\r\n\t // at instantiation here.\r\n\t if (!(key in vm)) {\r\n\t defineComputed(vm, key, userDef);\r\n\t }\r\n\t else {\r\n\t if (key in vm.$data) {\r\n\t warn(`The computed property \"${key}\" is already defined in data.`, vm);\r\n\t }\r\n\t else if (vm.$options.props && key in vm.$options.props) {\r\n\t warn(`The computed property \"${key}\" is already defined as a prop.`, vm);\r\n\t }\r\n\t else if (vm.$options.methods && key in vm.$options.methods) {\r\n\t warn(`The computed property \"${key}\" is already defined as a method.`, vm);\r\n\t }\r\n\t }\r\n\t }\r\n\t}\r\n\tfunction defineComputed(target, key, userDef) {\r\n\t const shouldCache = !isServerRendering();\r\n\t if (isFunction(userDef)) {\r\n\t sharedPropertyDefinition.get = shouldCache\r\n\t ? createComputedGetter(key)\r\n\t : createGetterInvoker(userDef);\r\n\t sharedPropertyDefinition.set = noop;\r\n\t }\r\n\t else {\r\n\t sharedPropertyDefinition.get = userDef.get\r\n\t ? shouldCache && userDef.cache !== false\r\n\t ? createComputedGetter(key)\r\n\t : createGetterInvoker(userDef.get)\r\n\t : noop;\r\n\t sharedPropertyDefinition.set = userDef.set || noop;\r\n\t }\r\n\t if (sharedPropertyDefinition.set === noop) {\r\n\t sharedPropertyDefinition.set = function () {\r\n\t warn(`Computed property \"${key}\" was assigned to but it has no setter.`, this);\r\n\t };\r\n\t }\r\n\t Object.defineProperty(target, key, sharedPropertyDefinition);\r\n\t}\r\n\tfunction createComputedGetter(key) {\r\n\t return function computedGetter() {\r\n\t const watcher = this._computedWatchers && this._computedWatchers[key];\r\n\t if (watcher) {\r\n\t if (watcher.dirty) {\r\n\t watcher.evaluate();\r\n\t }\r\n\t if (Dep.target) {\r\n\t if (Dep.target.onTrack) {\r\n\t Dep.target.onTrack({\r\n\t effect: Dep.target,\r\n\t target: this,\r\n\t type: \"get\" /* TrackOpTypes.GET */,\r\n\t key\r\n\t });\r\n\t }\r\n\t watcher.depend();\r\n\t }\r\n\t return watcher.value;\r\n\t }\r\n\t };\r\n\t}\r\n\tfunction createGetterInvoker(fn) {\r\n\t return function computedGetter() {\r\n\t return fn.call(this, this);\r\n\t };\r\n\t}\r\n\tfunction initMethods(vm, methods) {\r\n\t const props = vm.$options.props;\r\n\t for (const key in methods) {\r\n\t {\r\n\t if (typeof methods[key] !== 'function') {\r\n\t warn(`Method \"${key}\" has type \"${typeof methods[key]}\" in the component definition. ` +\r\n\t `Did you reference the function correctly?`, vm);\r\n\t }\r\n\t if (props && hasOwn(props, key)) {\r\n\t warn(`Method \"${key}\" has already been defined as a prop.`, vm);\r\n\t }\r\n\t if (key in vm && isReserved(key)) {\r\n\t warn(`Method \"${key}\" conflicts with an existing Vue instance method. ` +\r\n\t `Avoid defining component methods that start with _ or $.`);\r\n\t }\r\n\t }\r\n\t vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);\r\n\t }\r\n\t}\r\n\tfunction initWatch(vm, watch) {\r\n\t for (const key in watch) {\r\n\t const handler = watch[key];\r\n\t if (isArray(handler)) {\r\n\t for (let i = 0; i < handler.length; i++) {\r\n\t createWatcher(vm, key, handler[i]);\r\n\t }\r\n\t }\r\n\t else {\r\n\t createWatcher(vm, key, handler);\r\n\t }\r\n\t }\r\n\t}\r\n\tfunction createWatcher(vm, expOrFn, handler, options) {\r\n\t if (isPlainObject(handler)) {\r\n\t options = handler;\r\n\t handler = handler.handler;\r\n\t }\r\n\t if (typeof handler === 'string') {\r\n\t handler = vm[handler];\r\n\t }\r\n\t return vm.$watch(expOrFn, handler, options);\r\n\t}\r\n\tfunction stateMixin(Vue) {\r\n\t // flow somehow has problems with directly declared definition object\r\n\t // when using Object.defineProperty, so we have to procedurally build up\r\n\t // the object here.\r\n\t const dataDef = {};\r\n\t dataDef.get = function () {\r\n\t return this._data;\r\n\t };\r\n\t const propsDef = {};\r\n\t propsDef.get = function () {\r\n\t return this._props;\r\n\t };\r\n\t {\r\n\t dataDef.set = function () {\r\n\t warn('Avoid replacing instance root $data. ' +\r\n\t 'Use nested data properties instead.', this);\r\n\t };\r\n\t propsDef.set = function () {\r\n\t warn(`$props is readonly.`, this);\r\n\t };\r\n\t }\r\n\t Object.defineProperty(Vue.prototype, '$data', dataDef);\r\n\t Object.defineProperty(Vue.prototype, '$props', propsDef);\r\n\t Vue.prototype.$set = set;\r\n\t Vue.prototype.$delete = del;\r\n\t Vue.prototype.$watch = function (expOrFn, cb, options) {\r\n\t const vm = this;\r\n\t if (isPlainObject(cb)) {\r\n\t return createWatcher(vm, expOrFn, cb, options);\r\n\t }\r\n\t options = options || {};\r\n\t options.user = true;\r\n\t const watcher = new Watcher(vm, expOrFn, cb, options);\r\n\t if (options.immediate) {\r\n\t const info = `callback for immediate watcher \"${watcher.expression}\"`;\r\n\t pushTarget();\r\n\t invokeWithErrorHandling(cb, vm, [watcher.value], vm, info);\r\n\t popTarget();\r\n\t }\r\n\t return function unwatchFn() {\r\n\t watcher.teardown();\r\n\t };\r\n\t };\r\n\t}\n\n\tlet uid = 0;\r\n\tfunction initMixin$1(Vue) {\r\n\t Vue.prototype._init = function (options) {\r\n\t const vm = this;\r\n\t // a uid\r\n\t vm._uid = uid++;\r\n\t let startTag, endTag;\r\n\t /* istanbul ignore if */\r\n\t if (config.performance && mark) {\r\n\t startTag = `vue-perf-start:${vm._uid}`;\r\n\t endTag = `vue-perf-end:${vm._uid}`;\r\n\t mark(startTag);\r\n\t }\r\n\t // a flag to mark this as a Vue instance without having to do instanceof\r\n\t // check\r\n\t vm._isVue = true;\r\n\t // avoid instances from being observed\r\n\t vm.__v_skip = true;\r\n\t // effect scope\r\n\t vm._scope = new EffectScope(true /* detached */);\r\n\t vm._scope._vm = true;\r\n\t // merge options\r\n\t if (options && options._isComponent) {\r\n\t // optimize internal component instantiation\r\n\t // since dynamic options merging is pretty slow, and none of the\r\n\t // internal component options needs special treatment.\r\n\t initInternalComponent(vm, options);\r\n\t }\r\n\t else {\r\n\t vm.$options = mergeOptions(resolveConstructorOptions(vm.constructor), options || {}, vm);\r\n\t }\r\n\t /* istanbul ignore else */\r\n\t {\r\n\t initProxy(vm);\r\n\t }\r\n\t // expose real self\r\n\t vm._self = vm;\r\n\t initLifecycle(vm);\r\n\t initEvents(vm);\r\n\t initRender(vm);\r\n\t callHook$1(vm, 'beforeCreate', undefined, false /* setContext */);\r\n\t initInjections(vm); // resolve injections before data/props\r\n\t initState(vm);\r\n\t initProvide(vm); // resolve provide after data/props\r\n\t callHook$1(vm, 'created');\r\n\t /* istanbul ignore if */\r\n\t if (config.performance && mark) {\r\n\t vm._name = formatComponentName(vm, false);\r\n\t mark(endTag);\r\n\t measure(`vue ${vm._name} init`, startTag, endTag);\r\n\t }\r\n\t if (vm.$options.el) {\r\n\t vm.$mount(vm.$options.el);\r\n\t }\r\n\t };\r\n\t}\r\n\tfunction initInternalComponent(vm, options) {\r\n\t const opts = (vm.$options = Object.create(vm.constructor.options));\r\n\t // doing this because it's faster than dynamic enumeration.\r\n\t const parentVnode = options._parentVnode;\r\n\t opts.parent = options.parent;\r\n\t opts._parentVnode = parentVnode;\r\n\t const vnodeComponentOptions = parentVnode.componentOptions;\r\n\t opts.propsData = vnodeComponentOptions.propsData;\r\n\t opts._parentListeners = vnodeComponentOptions.listeners;\r\n\t opts._renderChildren = vnodeComponentOptions.children;\r\n\t opts._componentTag = vnodeComponentOptions.tag;\r\n\t if (options.render) {\r\n\t opts.render = options.render;\r\n\t opts.staticRenderFns = options.staticRenderFns;\r\n\t }\r\n\t}\r\n\tfunction resolveConstructorOptions(Ctor) {\r\n\t let options = Ctor.options;\r\n\t if (Ctor.super) {\r\n\t const superOptions = resolveConstructorOptions(Ctor.super);\r\n\t const cachedSuperOptions = Ctor.superOptions;\r\n\t if (superOptions !== cachedSuperOptions) {\r\n\t // super option changed,\r\n\t // need to resolve new options.\r\n\t Ctor.superOptions = superOptions;\r\n\t // check if there are any late-modified/attached options (#4976)\r\n\t const modifiedOptions = resolveModifiedOptions(Ctor);\r\n\t // update base extend options\r\n\t if (modifiedOptions) {\r\n\t extend(Ctor.extendOptions, modifiedOptions);\r\n\t }\r\n\t options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\r\n\t if (options.name) {\r\n\t options.components[options.name] = Ctor;\r\n\t }\r\n\t }\r\n\t }\r\n\t return options;\r\n\t}\r\n\tfunction resolveModifiedOptions(Ctor) {\r\n\t let modified;\r\n\t const latest = Ctor.options;\r\n\t const sealed = Ctor.sealedOptions;\r\n\t for (const key in latest) {\r\n\t if (latest[key] !== sealed[key]) {\r\n\t if (!modified)\r\n\t modified = {};\r\n\t modified[key] = latest[key];\r\n\t }\r\n\t }\r\n\t return modified;\r\n\t}\n\n\tfunction Vue(options) {\r\n\t if (!(this instanceof Vue)) {\r\n\t warn('Vue is a constructor and should be called with the `new` keyword');\r\n\t }\r\n\t this._init(options);\r\n\t}\r\n\t//@ts-expect-error Vue has function type\r\n\tinitMixin$1(Vue);\r\n\t//@ts-expect-error Vue has function type\r\n\tstateMixin(Vue);\r\n\t//@ts-expect-error Vue has function type\r\n\teventsMixin(Vue);\r\n\t//@ts-expect-error Vue has function type\r\n\tlifecycleMixin(Vue);\r\n\t//@ts-expect-error Vue has function type\r\n\trenderMixin(Vue);\n\n\tfunction initUse(Vue) {\r\n\t Vue.use = function (plugin) {\r\n\t const installedPlugins = this._installedPlugins || (this._installedPlugins = []);\r\n\t if (installedPlugins.indexOf(plugin) > -1) {\r\n\t return this;\r\n\t }\r\n\t // additional parameters\r\n\t const args = toArray(arguments, 1);\r\n\t args.unshift(this);\r\n\t if (isFunction(plugin.install)) {\r\n\t plugin.install.apply(plugin, args);\r\n\t }\r\n\t else if (isFunction(plugin)) {\r\n\t plugin.apply(null, args);\r\n\t }\r\n\t installedPlugins.push(plugin);\r\n\t return this;\r\n\t };\r\n\t}\n\n\tfunction initMixin(Vue) {\r\n\t Vue.mixin = function (mixin) {\r\n\t this.options = mergeOptions(this.options, mixin);\r\n\t return this;\r\n\t };\r\n\t}\n\n\tfunction initExtend(Vue) {\r\n\t /**\r\n\t * Each instance constructor, including Vue, has a unique\r\n\t * cid. This enables us to create wrapped \"child\r\n\t * constructors\" for prototypal inheritance and cache them.\r\n\t */\r\n\t Vue.cid = 0;\r\n\t let cid = 1;\r\n\t /**\r\n\t * Class inheritance\r\n\t */\r\n\t Vue.extend = function (extendOptions) {\r\n\t extendOptions = extendOptions || {};\r\n\t const Super = this;\r\n\t const SuperId = Super.cid;\r\n\t const cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\r\n\t if (cachedCtors[SuperId]) {\r\n\t return cachedCtors[SuperId];\r\n\t }\r\n\t const name = getComponentName(extendOptions) || getComponentName(Super.options);\r\n\t if (name) {\r\n\t validateComponentName(name);\r\n\t }\r\n\t const Sub = function VueComponent(options) {\r\n\t this._init(options);\r\n\t };\r\n\t Sub.prototype = Object.create(Super.prototype);\r\n\t Sub.prototype.constructor = Sub;\r\n\t Sub.cid = cid++;\r\n\t Sub.options = mergeOptions(Super.options, extendOptions);\r\n\t Sub['super'] = Super;\r\n\t // For props and computed properties, we define the proxy getters on\r\n\t // the Vue instances at extension time, on the extended prototype. This\r\n\t // avoids Object.defineProperty calls for each instance created.\r\n\t if (Sub.options.props) {\r\n\t initProps(Sub);\r\n\t }\r\n\t if (Sub.options.computed) {\r\n\t initComputed(Sub);\r\n\t }\r\n\t // allow further extension/mixin/plugin usage\r\n\t Sub.extend = Super.extend;\r\n\t Sub.mixin = Super.mixin;\r\n\t Sub.use = Super.use;\r\n\t // create asset registers, so extended classes\r\n\t // can have their private assets too.\r\n\t ASSET_TYPES.forEach(function (type) {\r\n\t Sub[type] = Super[type];\r\n\t });\r\n\t // enable recursive self-lookup\r\n\t if (name) {\r\n\t Sub.options.components[name] = Sub;\r\n\t }\r\n\t // keep a reference to the super options at extension time.\r\n\t // later at instantiation we can check if Super's options have\r\n\t // been updated.\r\n\t Sub.superOptions = Super.options;\r\n\t Sub.extendOptions = extendOptions;\r\n\t Sub.sealedOptions = extend({}, Sub.options);\r\n\t // cache constructor\r\n\t cachedCtors[SuperId] = Sub;\r\n\t return Sub;\r\n\t };\r\n\t}\r\n\tfunction initProps(Comp) {\r\n\t const props = Comp.options.props;\r\n\t for (const key in props) {\r\n\t proxy(Comp.prototype, `_props`, key);\r\n\t }\r\n\t}\r\n\tfunction initComputed(Comp) {\r\n\t const computed = Comp.options.computed;\r\n\t for (const key in computed) {\r\n\t defineComputed(Comp.prototype, key, computed[key]);\r\n\t }\r\n\t}\n\n\tfunction initAssetRegisters(Vue) {\r\n\t /**\r\n\t * Create asset registration methods.\r\n\t */\r\n\t ASSET_TYPES.forEach(type => {\r\n\t // @ts-expect-error function is not exact same type\r\n\t Vue[type] = function (id, definition) {\r\n\t if (!definition) {\r\n\t return this.options[type + 's'][id];\r\n\t }\r\n\t else {\r\n\t /* istanbul ignore if */\r\n\t if (type === 'component') {\r\n\t validateComponentName(id);\r\n\t }\r\n\t if (type === 'component' && isPlainObject(definition)) {\r\n\t // @ts-expect-error\r\n\t definition.name = definition.name || id;\r\n\t definition = this.options._base.extend(definition);\r\n\t }\r\n\t if (type === 'directive' && isFunction(definition)) {\r\n\t definition = { bind: definition, update: definition };\r\n\t }\r\n\t this.options[type + 's'][id] = definition;\r\n\t return definition;\r\n\t }\r\n\t };\r\n\t });\r\n\t}\n\n\tfunction _getComponentName(opts) {\r\n\t return opts && (getComponentName(opts.Ctor.options) || opts.tag);\r\n\t}\r\n\tfunction matches(pattern, name) {\r\n\t if (isArray(pattern)) {\r\n\t return pattern.indexOf(name) > -1;\r\n\t }\r\n\t else if (typeof pattern === 'string') {\r\n\t return pattern.split(',').indexOf(name) > -1;\r\n\t }\r\n\t else if (isRegExp(pattern)) {\r\n\t return pattern.test(name);\r\n\t }\r\n\t /* istanbul ignore next */\r\n\t return false;\r\n\t}\r\n\tfunction pruneCache(keepAliveInstance, filter) {\r\n\t const { cache, keys, _vnode } = keepAliveInstance;\r\n\t for (const key in cache) {\r\n\t const entry = cache[key];\r\n\t if (entry) {\r\n\t const name = entry.name;\r\n\t if (name && !filter(name)) {\r\n\t pruneCacheEntry(cache, key, keys, _vnode);\r\n\t }\r\n\t }\r\n\t }\r\n\t}\r\n\tfunction pruneCacheEntry(cache, key, keys, current) {\r\n\t const entry = cache[key];\r\n\t if (entry && (!current || entry.tag !== current.tag)) {\r\n\t // @ts-expect-error can be undefined\r\n\t entry.componentInstance.$destroy();\r\n\t }\r\n\t cache[key] = null;\r\n\t remove$2(keys, key);\r\n\t}\r\n\tconst patternTypes = [String, RegExp, Array];\r\n\t// TODO defineComponent\r\n\tvar KeepAlive = {\r\n\t name: 'keep-alive',\r\n\t abstract: true,\r\n\t props: {\r\n\t include: patternTypes,\r\n\t exclude: patternTypes,\r\n\t max: [String, Number]\r\n\t },\r\n\t methods: {\r\n\t cacheVNode() {\r\n\t const { cache, keys, vnodeToCache, keyToCache } = this;\r\n\t if (vnodeToCache) {\r\n\t const { tag, componentInstance, componentOptions } = vnodeToCache;\r\n\t cache[keyToCache] = {\r\n\t name: _getComponentName(componentOptions),\r\n\t tag,\r\n\t componentInstance\r\n\t };\r\n\t keys.push(keyToCache);\r\n\t // prune oldest entry\r\n\t if (this.max && keys.length > parseInt(this.max)) {\r\n\t pruneCacheEntry(cache, keys[0], keys, this._vnode);\r\n\t }\r\n\t this.vnodeToCache = null;\r\n\t }\r\n\t }\r\n\t },\r\n\t created() {\r\n\t this.cache = Object.create(null);\r\n\t this.keys = [];\r\n\t },\r\n\t destroyed() {\r\n\t for (const key in this.cache) {\r\n\t pruneCacheEntry(this.cache, key, this.keys);\r\n\t }\r\n\t },\r\n\t mounted() {\r\n\t this.cacheVNode();\r\n\t this.$watch('include', val => {\r\n\t pruneCache(this, name => matches(val, name));\r\n\t });\r\n\t this.$watch('exclude', val => {\r\n\t pruneCache(this, name => !matches(val, name));\r\n\t });\r\n\t },\r\n\t updated() {\r\n\t this.cacheVNode();\r\n\t },\r\n\t render() {\r\n\t const slot = this.$slots.default;\r\n\t const vnode = getFirstComponentChild(slot);\r\n\t const componentOptions = vnode && vnode.componentOptions;\r\n\t if (componentOptions) {\r\n\t // check pattern\r\n\t const name = _getComponentName(componentOptions);\r\n\t const { include, exclude } = this;\r\n\t if (\r\n\t // not included\r\n\t (include && (!name || !matches(include, name))) ||\r\n\t // excluded\r\n\t (exclude && name && matches(exclude, name))) {\r\n\t return vnode;\r\n\t }\r\n\t const { cache, keys } = this;\r\n\t const key = vnode.key == null\r\n\t ? // same constructor may get registered as different local components\r\n\t // so cid alone is not enough (#3269)\r\n\t componentOptions.Ctor.cid +\r\n\t (componentOptions.tag ? `::${componentOptions.tag}` : '')\r\n\t : vnode.key;\r\n\t if (cache[key]) {\r\n\t vnode.componentInstance = cache[key].componentInstance;\r\n\t // make current key freshest\r\n\t remove$2(keys, key);\r\n\t keys.push(key);\r\n\t }\r\n\t else {\r\n\t // delay setting the cache until update\r\n\t this.vnodeToCache = vnode;\r\n\t this.keyToCache = key;\r\n\t }\r\n\t // @ts-expect-error can vnode.data can be undefined\r\n\t vnode.data.keepAlive = true;\r\n\t }\r\n\t return vnode || (slot && slot[0]);\r\n\t }\r\n\t};\n\n\tvar builtInComponents = {\r\n\t KeepAlive\r\n\t};\n\n\tfunction initGlobalAPI(Vue) {\r\n\t // config\r\n\t const configDef = {};\r\n\t configDef.get = () => config;\r\n\t {\r\n\t configDef.set = () => {\r\n\t warn('Do not replace the Vue.config object, set individual fields instead.');\r\n\t };\r\n\t }\r\n\t Object.defineProperty(Vue, 'config', configDef);\r\n\t // exposed util methods.\r\n\t // NOTE: these are not considered part of the public API - avoid relying on\r\n\t // them unless you are aware of the risk.\r\n\t Vue.util = {\r\n\t warn,\r\n\t extend,\r\n\t mergeOptions,\r\n\t defineReactive\r\n\t };\r\n\t Vue.set = set;\r\n\t Vue.delete = del;\r\n\t Vue.nextTick = nextTick;\r\n\t // 2.6 explicit observable API\r\n\t Vue.observable = (obj) => {\r\n\t observe(obj);\r\n\t return obj;\r\n\t };\r\n\t Vue.options = Object.create(null);\r\n\t ASSET_TYPES.forEach(type => {\r\n\t Vue.options[type + 's'] = Object.create(null);\r\n\t });\r\n\t // this is used to identify the \"base\" constructor to extend all plain-object\r\n\t // components with in Weex's multi-instance scenarios.\r\n\t Vue.options._base = Vue;\r\n\t extend(Vue.options.components, builtInComponents);\r\n\t initUse(Vue);\r\n\t initMixin(Vue);\r\n\t initExtend(Vue);\r\n\t initAssetRegisters(Vue);\r\n\t}\n\n\tinitGlobalAPI(Vue);\r\n\tObject.defineProperty(Vue.prototype, '$isServer', {\r\n\t get: isServerRendering\r\n\t});\r\n\tObject.defineProperty(Vue.prototype, '$ssrContext', {\r\n\t get() {\r\n\t /* istanbul ignore next */\r\n\t return this.$vnode && this.$vnode.ssrContext;\r\n\t }\r\n\t});\r\n\t// expose FunctionalRenderContext for ssr runtime helper installation\r\n\tObject.defineProperty(Vue, 'FunctionalRenderContext', {\r\n\t value: FunctionalRenderContext\r\n\t});\r\n\tVue.version = version;\n\n\t// these are reserved for web because they are directly compiled away\r\n\t// during template compilation\r\n\tconst isReservedAttr = makeMap('style,class');\r\n\t// attributes that should be using props for binding\r\n\tconst acceptValue = makeMap('input,textarea,option,select,progress');\r\n\tconst mustUseProp = (tag, type, attr) => {\r\n\t return ((attr === 'value' && acceptValue(tag) && type !== 'button') ||\r\n\t (attr === 'selected' && tag === 'option') ||\r\n\t (attr === 'checked' && tag === 'input') ||\r\n\t (attr === 'muted' && tag === 'video'));\r\n\t};\r\n\tconst isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\r\n\tconst isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');\r\n\tconst convertEnumeratedValue = (key, value) => {\r\n\t return isFalsyAttrValue(value) || value === 'false'\r\n\t ? 'false'\r\n\t : // allow arbitrary string value for contenteditable\r\n\t key === 'contenteditable' && isValidContentEditableValue(value)\r\n\t ? value\r\n\t : 'true';\r\n\t};\r\n\tconst isBooleanAttr = makeMap('allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\r\n\t 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\r\n\t 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\r\n\t 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\r\n\t 'required,reversed,scoped,seamless,selected,sortable,' +\r\n\t 'truespeed,typemustmatch,visible');\r\n\tconst xlinkNS = 'http://www.w3.org/1999/xlink';\r\n\tconst isXlink = (name) => {\r\n\t return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink';\r\n\t};\r\n\tconst getXlinkProp = (name) => {\r\n\t return isXlink(name) ? name.slice(6, name.length) : '';\r\n\t};\r\n\tconst isFalsyAttrValue = (val) => {\r\n\t return val == null || val === false;\r\n\t};\n\n\tfunction genClassForVnode(vnode) {\r\n\t let data = vnode.data;\r\n\t let parentNode = vnode;\r\n\t let childNode = vnode;\r\n\t while (isDef(childNode.componentInstance)) {\r\n\t childNode = childNode.componentInstance._vnode;\r\n\t if (childNode && childNode.data) {\r\n\t data = mergeClassData(childNode.data, data);\r\n\t }\r\n\t }\r\n\t // @ts-expect-error parentNode.parent not VNodeWithData\r\n\t while (isDef((parentNode = parentNode.parent))) {\r\n\t if (parentNode && parentNode.data) {\r\n\t data = mergeClassData(data, parentNode.data);\r\n\t }\r\n\t }\r\n\t return renderClass(data.staticClass, data.class);\r\n\t}\r\n\tfunction mergeClassData(child, parent) {\r\n\t return {\r\n\t staticClass: concat(child.staticClass, parent.staticClass),\r\n\t class: isDef(child.class) ? [child.class, parent.class] : parent.class\r\n\t };\r\n\t}\r\n\tfunction renderClass(staticClass, dynamicClass) {\r\n\t if (isDef(staticClass) || isDef(dynamicClass)) {\r\n\t return concat(staticClass, stringifyClass(dynamicClass));\r\n\t }\r\n\t /* istanbul ignore next */\r\n\t return '';\r\n\t}\r\n\tfunction concat(a, b) {\r\n\t return a ? (b ? a + ' ' + b : a) : b || '';\r\n\t}\r\n\tfunction stringifyClass(value) {\r\n\t if (Array.isArray(value)) {\r\n\t return stringifyArray(value);\r\n\t }\r\n\t if (isObject(value)) {\r\n\t return stringifyObject(value);\r\n\t }\r\n\t if (typeof value === 'string') {\r\n\t return value;\r\n\t }\r\n\t /* istanbul ignore next */\r\n\t return '';\r\n\t}\r\n\tfunction stringifyArray(value) {\r\n\t let res = '';\r\n\t let stringified;\r\n\t for (let i = 0, l = value.length; i < l; i++) {\r\n\t if (isDef((stringified = stringifyClass(value[i]))) && stringified !== '') {\r\n\t if (res)\r\n\t res += ' ';\r\n\t res += stringified;\r\n\t }\r\n\t }\r\n\t return res;\r\n\t}\r\n\tfunction stringifyObject(value) {\r\n\t let res = '';\r\n\t for (const key in value) {\r\n\t if (value[key]) {\r\n\t if (res)\r\n\t res += ' ';\r\n\t res += key;\r\n\t }\r\n\t }\r\n\t return res;\r\n\t}\n\n\tconst namespaceMap = {\r\n\t svg: 'http://www.w3.org/2000/svg',\r\n\t math: 'http://www.w3.org/1998/Math/MathML'\r\n\t};\r\n\tconst isHTMLTag = makeMap('html,body,base,head,link,meta,style,title,' +\r\n\t 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\r\n\t 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\r\n\t 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\r\n\t 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\r\n\t 'embed,object,param,source,canvas,script,noscript,del,ins,' +\r\n\t 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\r\n\t 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\r\n\t 'output,progress,select,textarea,' +\r\n\t 'details,dialog,menu,menuitem,summary,' +\r\n\t 'content,element,shadow,template,blockquote,iframe,tfoot');\r\n\t// this map is intentionally selective, only covering SVG elements that may\r\n\t// contain child elements.\r\n\tconst isSVG = makeMap('svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\r\n\t 'foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\r\n\t 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view', true);\r\n\tconst isReservedTag = (tag) => {\r\n\t return isHTMLTag(tag) || isSVG(tag);\r\n\t};\r\n\tfunction getTagNamespace(tag) {\r\n\t if (isSVG(tag)) {\r\n\t return 'svg';\r\n\t }\r\n\t // basic support for MathML\r\n\t // note it doesn't support other MathML elements being component roots\r\n\t if (tag === 'math') {\r\n\t return 'math';\r\n\t }\r\n\t}\r\n\tconst unknownElementCache = Object.create(null);\r\n\tfunction isUnknownElement(tag) {\r\n\t /* istanbul ignore if */\r\n\t if (!inBrowser) {\r\n\t return true;\r\n\t }\r\n\t if (isReservedTag(tag)) {\r\n\t return false;\r\n\t }\r\n\t tag = tag.toLowerCase();\r\n\t /* istanbul ignore if */\r\n\t if (unknownElementCache[tag] != null) {\r\n\t return unknownElementCache[tag];\r\n\t }\r\n\t const el = document.createElement(tag);\r\n\t if (tag.indexOf('-') > -1) {\r\n\t // http://stackoverflow.com/a/28210364/1070244\r\n\t return (unknownElementCache[tag] =\r\n\t el.constructor === window.HTMLUnknownElement ||\r\n\t el.constructor === window.HTMLElement);\r\n\t }\r\n\t else {\r\n\t return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()));\r\n\t }\r\n\t}\r\n\tconst isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n\t/**\r\n\t * Query an element selector if it's not an element already.\r\n\t */\r\n\tfunction query(el) {\r\n\t if (typeof el === 'string') {\r\n\t const selected = document.querySelector(el);\r\n\t if (!selected) {\r\n\t warn('Cannot find element: ' + el);\r\n\t return document.createElement('div');\r\n\t }\r\n\t return selected;\r\n\t }\r\n\t else {\r\n\t return el;\r\n\t }\r\n\t}\n\n\tfunction createElement(tagName, vnode) {\r\n\t const elm = document.createElement(tagName);\r\n\t if (tagName !== 'select') {\r\n\t return elm;\r\n\t }\r\n\t // false or null will remove the attribute but undefined will not\r\n\t if (vnode.data &&\r\n\t vnode.data.attrs &&\r\n\t vnode.data.attrs.multiple !== undefined) {\r\n\t elm.setAttribute('multiple', 'multiple');\r\n\t }\r\n\t return elm;\r\n\t}\r\n\tfunction createElementNS(namespace, tagName) {\r\n\t return document.createElementNS(namespaceMap[namespace], tagName);\r\n\t}\r\n\tfunction createTextNode(text) {\r\n\t return document.createTextNode(text);\r\n\t}\r\n\tfunction createComment(text) {\r\n\t return document.createComment(text);\r\n\t}\r\n\tfunction insertBefore(parentNode, newNode, referenceNode) {\r\n\t parentNode.insertBefore(newNode, referenceNode);\r\n\t}\r\n\tfunction removeChild(node, child) {\r\n\t node.removeChild(child);\r\n\t}\r\n\tfunction appendChild(node, child) {\r\n\t node.appendChild(child);\r\n\t}\r\n\tfunction parentNode(node) {\r\n\t return node.parentNode;\r\n\t}\r\n\tfunction nextSibling(node) {\r\n\t return node.nextSibling;\r\n\t}\r\n\tfunction tagName(node) {\r\n\t return node.tagName;\r\n\t}\r\n\tfunction setTextContent(node, text) {\r\n\t node.textContent = text;\r\n\t}\r\n\tfunction setStyleScope(node, scopeId) {\r\n\t node.setAttribute(scopeId, '');\r\n\t}\n\n\tvar nodeOps = /*#__PURE__*/Object.freeze({\n\t __proto__: null,\n\t createElement: createElement,\n\t createElementNS: createElementNS,\n\t createTextNode: createTextNode,\n\t createComment: createComment,\n\t insertBefore: insertBefore,\n\t removeChild: removeChild,\n\t appendChild: appendChild,\n\t parentNode: parentNode,\n\t nextSibling: nextSibling,\n\t tagName: tagName,\n\t setTextContent: setTextContent,\n\t setStyleScope: setStyleScope\n\t});\n\n\tvar ref = {\r\n\t create(_, vnode) {\r\n\t registerRef(vnode);\r\n\t },\r\n\t update(oldVnode, vnode) {\r\n\t if (oldVnode.data.ref !== vnode.data.ref) {\r\n\t registerRef(oldVnode, true);\r\n\t registerRef(vnode);\r\n\t }\r\n\t },\r\n\t destroy(vnode) {\r\n\t registerRef(vnode, true);\r\n\t }\r\n\t};\r\n\tfunction registerRef(vnode, isRemoval) {\r\n\t const ref = vnode.data.ref;\r\n\t if (!isDef(ref))\r\n\t return;\r\n\t const vm = vnode.context;\r\n\t const refValue = vnode.componentInstance || vnode.elm;\r\n\t const value = isRemoval ? null : refValue;\r\n\t const $refsValue = isRemoval ? undefined : refValue;\r\n\t if (isFunction(ref)) {\r\n\t invokeWithErrorHandling(ref, vm, [value], vm, `template ref function`);\r\n\t return;\r\n\t }\r\n\t const isFor = vnode.data.refInFor;\r\n\t const _isString = typeof ref === 'string' || typeof ref === 'number';\r\n\t const _isRef = isRef(ref);\r\n\t const refs = vm.$refs;\r\n\t if (_isString || _isRef) {\r\n\t if (isFor) {\r\n\t const existing = _isString ? refs[ref] : ref.value;\r\n\t if (isRemoval) {\r\n\t isArray(existing) && remove$2(existing, refValue);\r\n\t }\r\n\t else {\r\n\t if (!isArray(existing)) {\r\n\t if (_isString) {\r\n\t refs[ref] = [refValue];\r\n\t setSetupRef(vm, ref, refs[ref]);\r\n\t }\r\n\t else {\r\n\t ref.value = [refValue];\r\n\t }\r\n\t }\r\n\t else if (!existing.includes(refValue)) {\r\n\t existing.push(refValue);\r\n\t }\r\n\t }\r\n\t }\r\n\t else if (_isString) {\r\n\t if (isRemoval && refs[ref] !== refValue) {\r\n\t return;\r\n\t }\r\n\t refs[ref] = $refsValue;\r\n\t setSetupRef(vm, ref, value);\r\n\t }\r\n\t else if (_isRef) {\r\n\t if (isRemoval && ref.value !== refValue) {\r\n\t return;\r\n\t }\r\n\t ref.value = value;\r\n\t }\r\n\t else {\r\n\t warn(`Invalid template ref type: ${typeof ref}`);\r\n\t }\r\n\t }\r\n\t}\r\n\tfunction setSetupRef({ _setupState }, key, val) {\r\n\t if (_setupState && hasOwn(_setupState, key)) {\r\n\t if (isRef(_setupState[key])) {\r\n\t _setupState[key].value = val;\r\n\t }\r\n\t else {\r\n\t _setupState[key] = val;\r\n\t }\r\n\t }\r\n\t}\n\n\t/**\r\n\t * Virtual DOM patching algorithm based on Snabbdom by\r\n\t * Simon Friis Vindum (@paldepind)\r\n\t * Licensed under the MIT License\r\n\t * https://github.com/paldepind/snabbdom/blob/master/LICENSE\r\n\t *\r\n\t * modified by Evan You (@yyx990803)\r\n\t *\r\n\t * Not type-checking this because this file is perf-critical and the cost\r\n\t * of making flow understand it is not worth it.\r\n\t */\r\n\tconst emptyNode = new VNode('', {}, []);\r\n\tconst hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\r\n\tfunction sameVnode(a, b) {\r\n\t return (a.key === b.key &&\r\n\t a.asyncFactory === b.asyncFactory &&\r\n\t ((a.tag === b.tag &&\r\n\t a.isComment === b.isComment &&\r\n\t isDef(a.data) === isDef(b.data) &&\r\n\t sameInputType(a, b)) ||\r\n\t (isTrue(a.isAsyncPlaceholder) && isUndef(b.asyncFactory.error))));\r\n\t}\r\n\tfunction sameInputType(a, b) {\r\n\t if (a.tag !== 'input')\r\n\t return true;\r\n\t let i;\r\n\t const typeA = isDef((i = a.data)) && isDef((i = i.attrs)) && i.type;\r\n\t const typeB = isDef((i = b.data)) && isDef((i = i.attrs)) && i.type;\r\n\t return typeA === typeB || (isTextInputType(typeA) && isTextInputType(typeB));\r\n\t}\r\n\tfunction createKeyToOldIdx(children, beginIdx, endIdx) {\r\n\t let i, key;\r\n\t const map = {};\r\n\t for (i = beginIdx; i <= endIdx; ++i) {\r\n\t key = children[i].key;\r\n\t if (isDef(key))\r\n\t map[key] = i;\r\n\t }\r\n\t return map;\r\n\t}\r\n\tfunction createPatchFunction(backend) {\r\n\t let i, j;\r\n\t const cbs = {};\r\n\t const { modules, nodeOps } = backend;\r\n\t for (i = 0; i < hooks.length; ++i) {\r\n\t cbs[hooks[i]] = [];\r\n\t for (j = 0; j < modules.length; ++j) {\r\n\t if (isDef(modules[j][hooks[i]])) {\r\n\t cbs[hooks[i]].push(modules[j][hooks[i]]);\r\n\t }\r\n\t }\r\n\t }\r\n\t function emptyNodeAt(elm) {\r\n\t return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm);\r\n\t }\r\n\t function createRmCb(childElm, listeners) {\r\n\t function remove() {\r\n\t if (--remove.listeners === 0) {\r\n\t removeNode(childElm);\r\n\t }\r\n\t }\r\n\t remove.listeners = listeners;\r\n\t return remove;\r\n\t }\r\n\t function removeNode(el) {\r\n\t const parent = nodeOps.parentNode(el);\r\n\t // element may have already been removed due to v-html / v-text\r\n\t if (isDef(parent)) {\r\n\t nodeOps.removeChild(parent, el);\r\n\t }\r\n\t }\r\n\t function isUnknownElement(vnode, inVPre) {\r\n\t return (!inVPre &&\r\n\t !vnode.ns &&\r\n\t !(config.ignoredElements.length &&\r\n\t config.ignoredElements.some(ignore => {\r\n\t return isRegExp(ignore)\r\n\t ? ignore.test(vnode.tag)\r\n\t : ignore === vnode.tag;\r\n\t })) &&\r\n\t config.isUnknownElement(vnode.tag));\r\n\t }\r\n\t let creatingElmInVPre = 0;\r\n\t function createElm(vnode, insertedVnodeQueue, parentElm, refElm, nested, ownerArray, index) {\r\n\t if (isDef(vnode.elm) && isDef(ownerArray)) {\r\n\t // This vnode was used in a previous render!\r\n\t // now it's used as a new node, overwriting its elm would cause\r\n\t // potential patch errors down the road when it's used as an insertion\r\n\t // reference node. Instead, we clone the node on-demand before creating\r\n\t // associated DOM element for it.\r\n\t vnode = ownerArray[index] = cloneVNode(vnode);\r\n\t }\r\n\t vnode.isRootInsert = !nested; // for transition enter check\r\n\t if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\r\n\t return;\r\n\t }\r\n\t const data = vnode.data;\r\n\t const children = vnode.children;\r\n\t const tag = vnode.tag;\r\n\t if (isDef(tag)) {\r\n\t {\r\n\t if (data && data.pre) {\r\n\t creatingElmInVPre++;\r\n\t }\r\n\t if (isUnknownElement(vnode, creatingElmInVPre)) {\r\n\t warn('Unknown custom element: <' +\r\n\t tag +\r\n\t '> - did you ' +\r\n\t 'register the component correctly? For recursive components, ' +\r\n\t 'make sure to provide the \"name\" option.', vnode.context);\r\n\t }\r\n\t }\r\n\t vnode.elm = vnode.ns\r\n\t ? nodeOps.createElementNS(vnode.ns, tag)\r\n\t : nodeOps.createElement(tag, vnode);\r\n\t setScope(vnode);\r\n\t createChildren(vnode, children, insertedVnodeQueue);\r\n\t if (isDef(data)) {\r\n\t invokeCreateHooks(vnode, insertedVnodeQueue);\r\n\t }\r\n\t insert(parentElm, vnode.elm, refElm);\r\n\t if (data && data.pre) {\r\n\t creatingElmInVPre--;\r\n\t }\r\n\t }\r\n\t else if (isTrue(vnode.isComment)) {\r\n\t vnode.elm = nodeOps.createComment(vnode.text);\r\n\t insert(parentElm, vnode.elm, refElm);\r\n\t }\r\n\t else {\r\n\t vnode.elm = nodeOps.createTextNode(vnode.text);\r\n\t insert(parentElm, vnode.elm, refElm);\r\n\t }\r\n\t }\r\n\t function createComponent(vnode, insertedVnodeQueue, parentElm, refElm) {\r\n\t let i = vnode.data;\r\n\t if (isDef(i)) {\r\n\t const isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\r\n\t if (isDef((i = i.hook)) && isDef((i = i.init))) {\r\n\t i(vnode, false /* hydrating */);\r\n\t }\r\n\t // after calling the init hook, if the vnode is a child component\r\n\t // it should've created a child instance and mounted it. the child\r\n\t // component also has set the placeholder vnode's elm.\r\n\t // in that case we can just return the element and be done.\r\n\t if (isDef(vnode.componentInstance)) {\r\n\t initComponent(vnode, insertedVnodeQueue);\r\n\t insert(parentElm, vnode.elm, refElm);\r\n\t if (isTrue(isReactivated)) {\r\n\t reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\r\n\t }\r\n\t return true;\r\n\t }\r\n\t }\r\n\t }\r\n\t function initComponent(vnode, insertedVnodeQueue) {\r\n\t if (isDef(vnode.data.pendingInsert)) {\r\n\t insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\r\n\t vnode.data.pendingInsert = null;\r\n\t }\r\n\t vnode.elm = vnode.componentInstance.$el;\r\n\t if (isPatchable(vnode)) {\r\n\t invokeCreateHooks(vnode, insertedVnodeQueue);\r\n\t setScope(vnode);\r\n\t }\r\n\t else {\r\n\t // empty component root.\r\n\t // skip all element-related modules except for ref (#3455)\r\n\t registerRef(vnode);\r\n\t // make sure to invoke the insert hook\r\n\t insertedVnodeQueue.push(vnode);\r\n\t }\r\n\t }\r\n\t function reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm) {\r\n\t let i;\r\n\t // hack for #4339: a reactivated component with inner transition\r\n\t // does not trigger because the inner node's created hooks are not called\r\n\t // again. It's not ideal to involve module-specific logic in here but\r\n\t // there doesn't seem to be a better way to do it.\r\n\t let innerNode = vnode;\r\n\t while (innerNode.componentInstance) {\r\n\t innerNode = innerNode.componentInstance._vnode;\r\n\t if (isDef((i = innerNode.data)) && isDef((i = i.transition))) {\r\n\t for (i = 0; i < cbs.activate.length; ++i) {\r\n\t cbs.activate[i](emptyNode, innerNode);\r\n\t }\r\n\t insertedVnodeQueue.push(innerNode);\r\n\t break;\r\n\t }\r\n\t }\r\n\t // unlike a newly created component,\r\n\t // a reactivated keep-alive component doesn't insert itself\r\n\t insert(parentElm, vnode.elm, refElm);\r\n\t }\r\n\t function insert(parent, elm, ref) {\r\n\t if (isDef(parent)) {\r\n\t if (isDef(ref)) {\r\n\t if (nodeOps.parentNode(ref) === parent) {\r\n\t nodeOps.insertBefore(parent, elm, ref);\r\n\t }\r\n\t }\r\n\t else {\r\n\t nodeOps.appendChild(parent, elm);\r\n\t }\r\n\t }\r\n\t }\r\n\t function createChildren(vnode, children, insertedVnodeQueue) {\r\n\t if (isArray(children)) {\r\n\t {\r\n\t checkDuplicateKeys(children);\r\n\t }\r\n\t for (let i = 0; i < children.length; ++i) {\r\n\t createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);\r\n\t }\r\n\t }\r\n\t else if (isPrimitive(vnode.text)) {\r\n\t nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\r\n\t }\r\n\t }\r\n\t function isPatchable(vnode) {\r\n\t while (vnode.componentInstance) {\r\n\t vnode = vnode.componentInstance._vnode;\r\n\t }\r\n\t return isDef(vnode.tag);\r\n\t }\r\n\t function invokeCreateHooks(vnode, insertedVnodeQueue) {\r\n\t for (let i = 0; i < cbs.create.length; ++i) {\r\n\t cbs.create[i](emptyNode, vnode);\r\n\t }\r\n\t i = vnode.data.hook; // Reuse variable\r\n\t if (isDef(i)) {\r\n\t if (isDef(i.create))\r\n\t i.create(emptyNode, vnode);\r\n\t if (isDef(i.insert))\r\n\t insertedVnodeQueue.push(vnode);\r\n\t }\r\n\t }\r\n\t // set scope id attribute for scoped CSS.\r\n\t // this is implemented as a special case to avoid the overhead\r\n\t // of going through the normal attribute patching process.\r\n\t function setScope(vnode) {\r\n\t let i;\r\n\t if (isDef((i = vnode.fnScopeId))) {\r\n\t nodeOps.setStyleScope(vnode.elm, i);\r\n\t }\r\n\t else {\r\n\t let ancestor = vnode;\r\n\t while (ancestor) {\r\n\t if (isDef((i = ancestor.context)) && isDef((i = i.$options._scopeId))) {\r\n\t nodeOps.setStyleScope(vnode.elm, i);\r\n\t }\r\n\t ancestor = ancestor.parent;\r\n\t }\r\n\t }\r\n\t // for slot content they should also get the scopeId from the host instance.\r\n\t if (isDef((i = activeInstance)) &&\r\n\t i !== vnode.context &&\r\n\t i !== vnode.fnContext &&\r\n\t isDef((i = i.$options._scopeId))) {\r\n\t nodeOps.setStyleScope(vnode.elm, i);\r\n\t }\r\n\t }\r\n\t function addVnodes(parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\r\n\t for (; startIdx <= endIdx; ++startIdx) {\r\n\t createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\r\n\t }\r\n\t }\r\n\t function invokeDestroyHook(vnode) {\r\n\t let i, j;\r\n\t const data = vnode.data;\r\n\t if (isDef(data)) {\r\n\t if (isDef((i = data.hook)) && isDef((i = i.destroy)))\r\n\t i(vnode);\r\n\t for (i = 0; i < cbs.destroy.length; ++i)\r\n\t cbs.destroy[i](vnode);\r\n\t }\r\n\t if (isDef((i = vnode.children))) {\r\n\t for (j = 0; j < vnode.children.length; ++j) {\r\n\t invokeDestroyHook(vnode.children[j]);\r\n\t }\r\n\t }\r\n\t }\r\n\t function removeVnodes(vnodes, startIdx, endIdx) {\r\n\t for (; startIdx <= endIdx; ++startIdx) {\r\n\t const ch = vnodes[startIdx];\r\n\t if (isDef(ch)) {\r\n\t if (isDef(ch.tag)) {\r\n\t removeAndInvokeRemoveHook(ch);\r\n\t invokeDestroyHook(ch);\r\n\t }\r\n\t else {\r\n\t // Text node\r\n\t removeNode(ch.elm);\r\n\t }\r\n\t }\r\n\t }\r\n\t }\r\n\t function removeAndInvokeRemoveHook(vnode, rm) {\r\n\t if (isDef(rm) || isDef(vnode.data)) {\r\n\t let i;\r\n\t const listeners = cbs.remove.length + 1;\r\n\t if (isDef(rm)) {\r\n\t // we have a recursively passed down rm callback\r\n\t // increase the listeners count\r\n\t rm.listeners += listeners;\r\n\t }\r\n\t else {\r\n\t // directly removing\r\n\t rm = createRmCb(vnode.elm, listeners);\r\n\t }\r\n\t // recursively invoke hooks on child component root node\r\n\t if (isDef((i = vnode.componentInstance)) &&\r\n\t isDef((i = i._vnode)) &&\r\n\t isDef(i.data)) {\r\n\t removeAndInvokeRemoveHook(i, rm);\r\n\t }\r\n\t for (i = 0; i < cbs.remove.length; ++i) {\r\n\t cbs.remove[i](vnode, rm);\r\n\t }\r\n\t if (isDef((i = vnode.data.hook)) && isDef((i = i.remove))) {\r\n\t i(vnode, rm);\r\n\t }\r\n\t else {\r\n\t rm();\r\n\t }\r\n\t }\r\n\t else {\r\n\t removeNode(vnode.elm);\r\n\t }\r\n\t }\r\n\t function updateChildren(parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\r\n\t let oldStartIdx = 0;\r\n\t let newStartIdx = 0;\r\n\t let oldEndIdx = oldCh.length - 1;\r\n\t let oldStartVnode = oldCh[0];\r\n\t let oldEndVnode = oldCh[oldEndIdx];\r\n\t let newEndIdx = newCh.length - 1;\r\n\t let newStartVnode = newCh[0];\r\n\t let newEndVnode = newCh[newEndIdx];\r\n\t let oldKeyToIdx, idxInOld, vnodeToMove, refElm;\r\n\t // removeOnly is a special flag used only by <transition-group>\r\n\t // to ensure removed elements stay in correct relative positions\r\n\t // during leaving transitions\r\n\t const canMove = !removeOnly;\r\n\t {\r\n\t checkDuplicateKeys(newCh);\r\n\t }\r\n\t while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\r\n\t if (isUndef(oldStartVnode)) {\r\n\t oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\r\n\t }\r\n\t else if (isUndef(oldEndVnode)) {\r\n\t oldEndVnode = oldCh[--oldEndIdx];\r\n\t }\r\n\t else if (sameVnode(oldStartVnode, newStartVnode)) {\r\n\t patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\r\n\t oldStartVnode = oldCh[++oldStartIdx];\r\n\t newStartVnode = newCh[++newStartIdx];\r\n\t }\r\n\t else if (sameVnode(oldEndVnode, newEndVnode)) {\r\n\t patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\r\n\t oldEndVnode = oldCh[--oldEndIdx];\r\n\t newEndVnode = newCh[--newEndIdx];\r\n\t }\r\n\t else if (sameVnode(oldStartVnode, newEndVnode)) {\r\n\t // Vnode moved right\r\n\t patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\r\n\t canMove &&\r\n\t nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\r\n\t oldStartVnode = oldCh[++oldStartIdx];\r\n\t newEndVnode = newCh[--newEndIdx];\r\n\t }\r\n\t else if (sameVnode(oldEndVnode, newStartVnode)) {\r\n\t // Vnode moved left\r\n\t patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\r\n\t canMove &&\r\n\t nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\r\n\t oldEndVnode = oldCh[--oldEndIdx];\r\n\t newStartVnode = newCh[++newStartIdx];\r\n\t }\r\n\t else {\r\n\t if (isUndef(oldKeyToIdx))\r\n\t oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);\r\n\t idxInOld = isDef(newStartVnode.key)\r\n\t ? oldKeyToIdx[newStartVnode.key]\r\n\t : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\r\n\t if (isUndef(idxInOld)) {\r\n\t // New element\r\n\t createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\r\n\t }\r\n\t else {\r\n\t vnodeToMove = oldCh[idxInOld];\r\n\t if (sameVnode(vnodeToMove, newStartVnode)) {\r\n\t patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\r\n\t oldCh[idxInOld] = undefined;\r\n\t canMove &&\r\n\t nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\r\n\t }\r\n\t else {\r\n\t // same key but different element. treat as new element\r\n\t createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\r\n\t }\r\n\t }\r\n\t newStartVnode = newCh[++newStartIdx];\r\n\t }\r\n\t }\r\n\t if (oldStartIdx > oldEndIdx) {\r\n\t refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\r\n\t addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\r\n\t }\r\n\t else if (newStartIdx > newEndIdx) {\r\n\t removeVnodes(oldCh, oldStartIdx, oldEndIdx);\r\n\t }\r\n\t }\r\n\t function checkDuplicateKeys(children) {\r\n\t const seenKeys = {};\r\n\t for (let i = 0; i < children.length; i++) {\r\n\t const vnode = children[i];\r\n\t const key = vnode.key;\r\n\t if (isDef(key)) {\r\n\t if (seenKeys[key]) {\r\n\t warn(`Duplicate keys detected: '${key}'. This may cause an update error.`, vnode.context);\r\n\t }\r\n\t else {\r\n\t seenKeys[key] = true;\r\n\t }\r\n\t }\r\n\t }\r\n\t }\r\n\t function findIdxInOld(node, oldCh, start, end) {\r\n\t for (let i = start; i < end; i++) {\r\n\t const c = oldCh[i];\r\n\t if (isDef(c) && sameVnode(node, c))\r\n\t return i;\r\n\t }\r\n\t }\r\n\t function patchVnode(oldVnode, vnode, insertedVnodeQueue, ownerArray, index, removeOnly) {\r\n\t if (oldVnode === vnode) {\r\n\t return;\r\n\t }\r\n\t if (isDef(vnode.elm) && isDef(ownerArray)) {\r\n\t // clone reused vnode\r\n\t vnode = ownerArray[index] = cloneVNode(vnode);\r\n\t }\r\n\t const elm = (vnode.elm = oldVnode.elm);\r\n\t if (isTrue(oldVnode.isAsyncPlaceholder)) {\r\n\t if (isDef(vnode.asyncFactory.resolved)) {\r\n\t hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\r\n\t }\r\n\t else {\r\n\t vnode.isAsyncPlaceholder = true;\r\n\t }\r\n\t return;\r\n\t }\r\n\t // reuse element for static trees.\r\n\t // note we only do this if the vnode is cloned -\r\n\t // if the new node is not cloned it means the render functions have been\r\n\t // reset by the hot-reload-api and we need to do a proper re-render.\r\n\t if (isTrue(vnode.isStatic) &&\r\n\t isTrue(oldVnode.isStatic) &&\r\n\t vnode.key === oldVnode.key &&\r\n\t (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))) {\r\n\t vnode.componentInstance = oldVnode.componentInstance;\r\n\t return;\r\n\t }\r\n\t let i;\r\n\t const data = vnode.data;\r\n\t if (isDef(data) && isDef((i = data.hook)) && isDef((i = i.prepatch))) {\r\n\t i(oldVnode, vnode);\r\n\t }\r\n\t const oldCh = oldVnode.children;\r\n\t const ch = vnode.children;\r\n\t if (isDef(data) && isPatchable(vnode)) {\r\n\t for (i = 0; i < cbs.update.length; ++i)\r\n\t cbs.update[i](oldVnode, vnode);\r\n\t if (isDef((i = data.hook)) && isDef((i = i.update)))\r\n\t i(oldVnode, vnode);\r\n\t }\r\n\t if (isUndef(vnode.text)) {\r\n\t if (isDef(oldCh) && isDef(ch)) {\r\n\t if (oldCh !== ch)\r\n\t updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly);\r\n\t }\r\n\t else if (isDef(ch)) {\r\n\t {\r\n\t checkDuplicateKeys(ch);\r\n\t }\r\n\t if (isDef(oldVnode.text))\r\n\t nodeOps.setTextContent(elm, '');\r\n\t addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\r\n\t }\r\n\t else if (isDef(oldCh)) {\r\n\t removeVnodes(oldCh, 0, oldCh.length - 1);\r\n\t }\r\n\t else if (isDef(oldVnode.text)) {\r\n\t nodeOps.setTextContent(elm, '');\r\n\t }\r\n\t }\r\n\t else if (oldVnode.text !== vnode.text) {\r\n\t nodeOps.setTextContent(elm, vnode.text);\r\n\t }\r\n\t if (isDef(data)) {\r\n\t if (isDef((i = data.hook)) && isDef((i = i.postpatch)))\r\n\t i(oldVnode, vnode);\r\n\t }\r\n\t }\r\n\t function invokeInsertHook(vnode, queue, initial) {\r\n\t // delay insert hooks for component root nodes, invoke them after the\r\n\t // element is really inserted\r\n\t if (isTrue(initial) && isDef(vnode.parent)) {\r\n\t vnode.parent.data.pendingInsert = queue;\r\n\t }\r\n\t else {\r\n\t for (let i = 0; i < queue.length; ++i) {\r\n\t queue[i].data.hook.insert(queue[i]);\r\n\t }\r\n\t }\r\n\t }\r\n\t let hydrationBailed = false;\r\n\t // list of modules that can skip create hook during hydration because they\r\n\t // are already rendered on the client or has no need for initialization\r\n\t // Note: style is excluded because it relies on initial clone for future\r\n\t // deep updates (#7063).\r\n\t const isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\r\n\t // Note: this is a browser-only function so we can assume elms are DOM nodes.\r\n\t function hydrate(elm, vnode, insertedVnodeQueue, inVPre) {\r\n\t let i;\r\n\t const { tag, data, children } = vnode;\r\n\t inVPre = inVPre || (data && data.pre);\r\n\t vnode.elm = elm;\r\n\t if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\r\n\t vnode.isAsyncPlaceholder = true;\r\n\t return true;\r\n\t }\r\n\t // assert node match\r\n\t {\r\n\t if (!assertNodeMatch(elm, vnode, inVPre)) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t if (isDef(data)) {\r\n\t if (isDef((i = data.hook)) && isDef((i = i.init)))\r\n\t i(vnode, true /* hydrating */);\r\n\t if (isDef((i = vnode.componentInstance))) {\r\n\t // child component. it should have hydrated its own tree.\r\n\t initComponent(vnode, insertedVnodeQueue);\r\n\t return true;\r\n\t }\r\n\t }\r\n\t if (isDef(tag)) {\r\n\t if (isDef(children)) {\r\n\t // empty element, allow client to pick up and populate children\r\n\t if (!elm.hasChildNodes()) {\r\n\t createChildren(vnode, children, insertedVnodeQueue);\r\n\t }\r\n\t else {\r\n\t // v-html and domProps: innerHTML\r\n\t if (isDef((i = data)) &&\r\n\t isDef((i = i.domProps)) &&\r\n\t isDef((i = i.innerHTML))) {\r\n\t if (i !== elm.innerHTML) {\r\n\t /* istanbul ignore if */\r\n\t if (typeof console !== 'undefined' &&\r\n\t !hydrationBailed) {\r\n\t hydrationBailed = true;\r\n\t console.warn('Parent: ', elm);\r\n\t console.warn('server innerHTML: ', i);\r\n\t console.warn('client innerHTML: ', elm.innerHTML);\r\n\t }\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else {\r\n\t // iterate and compare children lists\r\n\t let childrenMatch = true;\r\n\t let childNode = elm.firstChild;\r\n\t for (let i = 0; i < children.length; i++) {\r\n\t if (!childNode ||\r\n\t !hydrate(childNode, children[i], insertedVnodeQueue, inVPre)) {\r\n\t childrenMatch = false;\r\n\t break;\r\n\t }\r\n\t childNode = childNode.nextSibling;\r\n\t }\r\n\t // if childNode is not null, it means the actual childNodes list is\r\n\t // longer than the virtual children list.\r\n\t if (!childrenMatch || childNode) {\r\n\t /* istanbul ignore if */\r\n\t if (typeof console !== 'undefined' &&\r\n\t !hydrationBailed) {\r\n\t hydrationBailed = true;\r\n\t console.warn('Parent: ', elm);\r\n\t console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\r\n\t }\r\n\t return false;\r\n\t }\r\n\t }\r\n\t }\r\n\t }\r\n\t if (isDef(data)) {\r\n\t let fullInvoke = false;\r\n\t for (const key in data) {\r\n\t if (!isRenderedModule(key)) {\r\n\t fullInvoke = true;\r\n\t invokeCreateHooks(vnode, insertedVnodeQueue);\r\n\t break;\r\n\t }\r\n\t }\r\n\t if (!fullInvoke && data['class']) {\r\n\t // ensure collecting deps for deep class bindings for future updates\r\n\t traverse(data['class']);\r\n\t }\r\n\t }\r\n\t }\r\n\t else if (elm.data !== vnode.text) {\r\n\t elm.data = vnode.text;\r\n\t }\r\n\t return true;\r\n\t }\r\n\t function assertNodeMatch(node, vnode, inVPre) {\r\n\t if (isDef(vnode.tag)) {\r\n\t return (vnode.tag.indexOf('vue-component') === 0 ||\r\n\t (!isUnknownElement(vnode, inVPre) &&\r\n\t vnode.tag.toLowerCase() ===\r\n\t (node.tagName && node.tagName.toLowerCase())));\r\n\t }\r\n\t else {\r\n\t return node.nodeType === (vnode.isComment ? 8 : 3);\r\n\t }\r\n\t }\r\n\t return function patch(oldVnode, vnode, hydrating, removeOnly) {\r\n\t if (isUndef(vnode)) {\r\n\t if (isDef(oldVnode))\r\n\t invokeDestroyHook(oldVnode);\r\n\t return;\r\n\t }\r\n\t let isInitialPatch = false;\r\n\t const insertedVnodeQueue = [];\r\n\t if (isUndef(oldVnode)) {\r\n\t // empty mount (likely as component), create new root element\r\n\t isInitialPatch = true;\r\n\t createElm(vnode, insertedVnodeQueue);\r\n\t }\r\n\t else {\r\n\t const isRealElement = isDef(oldVnode.nodeType);\r\n\t if (!isRealElement && sameVnode(oldVnode, vnode)) {\r\n\t // patch existing root node\r\n\t patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);\r\n\t }\r\n\t else {\r\n\t if (isRealElement) {\r\n\t // mounting to a real element\r\n\t // check if this is server-rendered content and if we can perform\r\n\t // a successful hydration.\r\n\t if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\r\n\t oldVnode.removeAttribute(SSR_ATTR);\r\n\t hydrating = true;\r\n\t }\r\n\t if (isTrue(hydrating)) {\r\n\t if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\r\n\t invokeInsertHook(vnode, insertedVnodeQueue, true);\r\n\t return oldVnode;\r\n\t }\r\n\t else {\r\n\t warn('The client-side rendered virtual DOM tree is not matching ' +\r\n\t 'server-rendered content. This is likely caused by incorrect ' +\r\n\t 'HTML markup, for example nesting block-level elements inside ' +\r\n\t '<p>, or missing <tbody>. Bailing hydration and performing ' +\r\n\t 'full client-side render.');\r\n\t }\r\n\t }\r\n\t // either not server-rendered, or hydration failed.\r\n\t // create an empty node and replace it\r\n\t oldVnode = emptyNodeAt(oldVnode);\r\n\t }\r\n\t // replacing existing element\r\n\t const oldElm = oldVnode.elm;\r\n\t const parentElm = nodeOps.parentNode(oldElm);\r\n\t // create new node\r\n\t createElm(vnode, insertedVnodeQueue, \r\n\t // extremely rare edge case: do not insert if old element is in a\r\n\t // leaving transition. Only happens when combining transition +\r\n\t // keep-alive + HOCs. (#4590)\r\n\t oldElm._leaveCb ? null : parentElm, nodeOps.nextSibling(oldElm));\r\n\t // update parent placeholder node element, recursively\r\n\t if (isDef(vnode.parent)) {\r\n\t let ancestor = vnode.parent;\r\n\t const patchable = isPatchable(vnode);\r\n\t while (ancestor) {\r\n\t for (let i = 0; i < cbs.destroy.length; ++i) {\r\n\t cbs.destroy[i](ancestor);\r\n\t }\r\n\t ancestor.elm = vnode.elm;\r\n\t if (patchable) {\r\n\t for (let i = 0; i < cbs.create.length; ++i) {\r\n\t cbs.create[i](emptyNode, ancestor);\r\n\t }\r\n\t // #6513\r\n\t // invoke insert hooks that may have been merged by create hooks.\r\n\t // e.g. for directives that uses the \"inserted\" hook.\r\n\t const insert = ancestor.data.hook.insert;\r\n\t if (insert.merged) {\r\n\t // start at index 1 to avoid re-invoking component mounted hook\r\n\t for (let i = 1; i < insert.fns.length; i++) {\r\n\t insert.fns[i]();\r\n\t }\r\n\t }\r\n\t }\r\n\t else {\r\n\t registerRef(ancestor);\r\n\t }\r\n\t ancestor = ancestor.parent;\r\n\t }\r\n\t }\r\n\t // destroy old node\r\n\t if (isDef(parentElm)) {\r\n\t removeVnodes([oldVnode], 0, 0);\r\n\t }\r\n\t else if (isDef(oldVnode.tag)) {\r\n\t invokeDestroyHook(oldVnode);\r\n\t }\r\n\t }\r\n\t }\r\n\t invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\r\n\t return vnode.elm;\r\n\t };\r\n\t}\n\n\tvar directives = {\r\n\t create: updateDirectives,\r\n\t update: updateDirectives,\r\n\t destroy: function unbindDirectives(vnode) {\r\n\t // @ts-expect-error emptyNode is not VNodeWithData\r\n\t updateDirectives(vnode, emptyNode);\r\n\t }\r\n\t};\r\n\tfunction updateDirectives(oldVnode, vnode) {\r\n\t if (oldVnode.data.directives || vnode.data.directives) {\r\n\t _update(oldVnode, vnode);\r\n\t }\r\n\t}\r\n\tfunction _update(oldVnode, vnode) {\r\n\t const isCreate = oldVnode === emptyNode;\r\n\t const isDestroy = vnode === emptyNode;\r\n\t const oldDirs = normalizeDirectives(oldVnode.data.directives, oldVnode.context);\r\n\t const newDirs = normalizeDirectives(vnode.data.directives, vnode.context);\r\n\t const dirsWithInsert = [];\r\n\t const dirsWithPostpatch = [];\r\n\t let key, oldDir, dir;\r\n\t for (key in newDirs) {\r\n\t oldDir = oldDirs[key];\r\n\t dir = newDirs[key];\r\n\t if (!oldDir) {\r\n\t // new directive, bind\r\n\t callHook(dir, 'bind', vnode, oldVnode);\r\n\t if (dir.def && dir.def.inserted) {\r\n\t dirsWithInsert.push(dir);\r\n\t }\r\n\t }\r\n\t else {\r\n\t // existing directive, update\r\n\t dir.oldValue = oldDir.value;\r\n\t dir.oldArg = oldDir.arg;\r\n\t callHook(dir, 'update', vnode, oldVnode);\r\n\t if (dir.def && dir.def.componentUpdated) {\r\n\t dirsWithPostpatch.push(dir);\r\n\t }\r\n\t }\r\n\t }\r\n\t if (dirsWithInsert.length) {\r\n\t const callInsert = () => {\r\n\t for (let i = 0; i < dirsWithInsert.length; i++) {\r\n\t callHook(dirsWithInsert[i], 'inserted', vnode, oldVnode);\r\n\t }\r\n\t };\r\n\t if (isCreate) {\r\n\t mergeVNodeHook(vnode, 'insert', callInsert);\r\n\t }\r\n\t else {\r\n\t callInsert();\r\n\t }\r\n\t }\r\n\t if (dirsWithPostpatch.length) {\r\n\t mergeVNodeHook(vnode, 'postpatch', () => {\r\n\t for (let i = 0; i < dirsWithPostpatch.length; i++) {\r\n\t callHook(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\r\n\t }\r\n\t });\r\n\t }\r\n\t if (!isCreate) {\r\n\t for (key in oldDirs) {\r\n\t if (!newDirs[key]) {\r\n\t // no longer present, unbind\r\n\t callHook(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\r\n\t }\r\n\t }\r\n\t }\r\n\t}\r\n\tconst emptyModifiers = Object.create(null);\r\n\tfunction normalizeDirectives(dirs, vm) {\r\n\t const res = Object.create(null);\r\n\t if (!dirs) {\r\n\t // $flow-disable-line\r\n\t return res;\r\n\t }\r\n\t let i, dir;\r\n\t for (i = 0; i < dirs.length; i++) {\r\n\t dir = dirs[i];\r\n\t if (!dir.modifiers) {\r\n\t // $flow-disable-line\r\n\t dir.modifiers = emptyModifiers;\r\n\t }\r\n\t res[getRawDirName(dir)] = dir;\r\n\t if (vm._setupState && vm._setupState.__sfc) {\r\n\t const setupDef = dir.def || resolveAsset(vm, '_setupState', 'v-' + dir.name);\r\n\t if (typeof setupDef === 'function') {\r\n\t dir.def = {\r\n\t bind: setupDef,\r\n\t update: setupDef,\r\n\t };\r\n\t }\r\n\t else {\r\n\t dir.def = setupDef;\r\n\t }\r\n\t }\r\n\t dir.def = dir.def || resolveAsset(vm.$options, 'directives', dir.name, true);\r\n\t }\r\n\t // $flow-disable-line\r\n\t return res;\r\n\t}\r\n\tfunction getRawDirName(dir) {\r\n\t return (dir.rawName || `${dir.name}.${Object.keys(dir.modifiers || {}).join('.')}`);\r\n\t}\r\n\tfunction callHook(dir, hook, vnode, oldVnode, isDestroy) {\r\n\t const fn = dir.def && dir.def[hook];\r\n\t if (fn) {\r\n\t try {\r\n\t fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\r\n\t }\r\n\t catch (e) {\r\n\t handleError(e, vnode.context, `directive ${dir.name} ${hook} hook`);\r\n\t }\r\n\t }\r\n\t}\n\n\tvar baseModules = [ref, directives];\n\n\tfunction updateAttrs(oldVnode, vnode) {\r\n\t const opts = vnode.componentOptions;\r\n\t if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\r\n\t return;\r\n\t }\r\n\t if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\r\n\t return;\r\n\t }\r\n\t let key, cur, old;\r\n\t const elm = vnode.elm;\r\n\t const oldAttrs = oldVnode.data.attrs || {};\r\n\t let attrs = vnode.data.attrs || {};\r\n\t // clone observed objects, as the user probably wants to mutate it\r\n\t if (isDef(attrs.__ob__) || isTrue(attrs._v_attr_proxy)) {\r\n\t attrs = vnode.data.attrs = extend({}, attrs);\r\n\t }\r\n\t for (key in attrs) {\r\n\t cur = attrs[key];\r\n\t old = oldAttrs[key];\r\n\t if (old !== cur) {\r\n\t setAttr(elm, key, cur, vnode.data.pre);\r\n\t }\r\n\t }\r\n\t // #4391: in IE9, setting type can reset value for input[type=radio]\r\n\t // #6666: IE/Edge forces progress value down to 1 before setting a max\r\n\t /* istanbul ignore if */\r\n\t if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\r\n\t setAttr(elm, 'value', attrs.value);\r\n\t }\r\n\t for (key in oldAttrs) {\r\n\t if (isUndef(attrs[key])) {\r\n\t if (isXlink(key)) {\r\n\t elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\r\n\t }\r\n\t else if (!isEnumeratedAttr(key)) {\r\n\t elm.removeAttribute(key);\r\n\t }\r\n\t }\r\n\t }\r\n\t}\r\n\tfunction setAttr(el, key, value, isInPre) {\r\n\t if (isInPre || el.tagName.indexOf('-') > -1) {\r\n\t baseSetAttr(el, key, value);\r\n\t }\r\n\t else if (isBooleanAttr(key)) {\r\n\t // set attribute for blank value\r\n\t // e.g. <option disabled>Select one</option>\r\n\t if (isFalsyAttrValue(value)) {\r\n\t el.removeAttribute(key);\r\n\t }\r\n\t else {\r\n\t // technically allowfullscreen is a boolean attribute for <iframe>,\r\n\t // but Flash expects a value of \"true\" when used on <embed> tag\r\n\t value = key === 'allowfullscreen' && el.tagName === 'EMBED' ? 'true' : key;\r\n\t el.setAttribute(key, value);\r\n\t }\r\n\t }\r\n\t else if (isEnumeratedAttr(key)) {\r\n\t el.setAttribute(key, convertEnumeratedValue(key, value));\r\n\t }\r\n\t else if (isXlink(key)) {\r\n\t if (isFalsyAttrValue(value)) {\r\n\t el.removeAttributeNS(xlinkNS, getXlinkProp(key));\r\n\t }\r\n\t else {\r\n\t el.setAttributeNS(xlinkNS, key, value);\r\n\t }\r\n\t }\r\n\t else {\r\n\t baseSetAttr(el, key, value);\r\n\t }\r\n\t}\r\n\tfunction baseSetAttr(el, key, value) {\r\n\t if (isFalsyAttrValue(value)) {\r\n\t el.removeAttribute(key);\r\n\t }\r\n\t else {\r\n\t // #7138: IE10 & 11 fires input event when setting placeholder on\r\n\t // <textarea>... block the first input event and remove the blocker\r\n\t // immediately.\r\n\t /* istanbul ignore if */\r\n\t if (isIE &&\r\n\t !isIE9 &&\r\n\t el.tagName === 'TEXTAREA' &&\r\n\t key === 'placeholder' &&\r\n\t value !== '' &&\r\n\t !el.__ieph) {\r\n\t const blocker = e => {\r\n\t e.stopImmediatePropagation();\r\n\t el.removeEventListener('input', blocker);\r\n\t };\r\n\t el.addEventListener('input', blocker);\r\n\t // $flow-disable-line\r\n\t el.__ieph = true; /* IE placeholder patched */\r\n\t }\r\n\t el.setAttribute(key, value);\r\n\t }\r\n\t}\r\n\tvar attrs = {\r\n\t create: updateAttrs,\r\n\t update: updateAttrs\r\n\t};\n\n\tfunction updateClass(oldVnode, vnode) {\r\n\t const el = vnode.elm;\r\n\t const data = vnode.data;\r\n\t const oldData = oldVnode.data;\r\n\t if (isUndef(data.staticClass) &&\r\n\t isUndef(data.class) &&\r\n\t (isUndef(oldData) ||\r\n\t (isUndef(oldData.staticClass) && isUndef(oldData.class)))) {\r\n\t return;\r\n\t }\r\n\t let cls = genClassForVnode(vnode);\r\n\t // handle transition classes\r\n\t const transitionClass = el._transitionClasses;\r\n\t if (isDef(transitionClass)) {\r\n\t cls = concat(cls, stringifyClass(transitionClass));\r\n\t }\r\n\t // set the class\r\n\t if (cls !== el._prevClass) {\r\n\t el.setAttribute('class', cls);\r\n\t el._prevClass = cls;\r\n\t }\r\n\t}\r\n\tvar klass = {\r\n\t create: updateClass,\r\n\t update: updateClass\r\n\t};\n\n\t// in some cases, the event used has to be determined at runtime\r\n\t// so we used some reserved tokens during compile.\r\n\tconst RANGE_TOKEN = '__r';\r\n\tconst CHECKBOX_RADIO_TOKEN = '__c';\n\n\t// normalize v-model event tokens that can only be determined at runtime.\r\n\t// it's important to place the event as the first in the array because\r\n\t// the whole point is ensuring the v-model callback gets called before\r\n\t// user-attached handlers.\r\n\tfunction normalizeEvents(on) {\r\n\t /* istanbul ignore if */\r\n\t if (isDef(on[RANGE_TOKEN])) {\r\n\t // IE input[type=range] only supports `change` event\r\n\t const event = isIE ? 'change' : 'input';\r\n\t on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);\r\n\t delete on[RANGE_TOKEN];\r\n\t }\r\n\t // This was originally intended to fix #4521 but no longer necessary\r\n\t // after 2.5. Keeping it for backwards compat with generated code from < 2.4\r\n\t /* istanbul ignore if */\r\n\t if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\r\n\t on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\r\n\t delete on[CHECKBOX_RADIO_TOKEN];\r\n\t }\r\n\t}\r\n\tlet target;\r\n\tfunction createOnceHandler(event, handler, capture) {\r\n\t const _target = target; // save current target element in closure\r\n\t return function onceHandler() {\r\n\t const res = handler.apply(null, arguments);\r\n\t if (res !== null) {\r\n\t remove(event, onceHandler, capture, _target);\r\n\t }\r\n\t };\r\n\t}\r\n\t// #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp\r\n\t// implementation and does not fire microtasks in between event propagation, so\r\n\t// safe to exclude.\r\n\tconst useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);\r\n\tfunction add(name, handler, capture, passive) {\r\n\t // async edge case #6566: inner click event triggers patch, event handler\r\n\t // attached to outer element during patch, and triggered again. This\r\n\t // happens because browsers fire microtask ticks between event propagation.\r\n\t // the solution is simple: we save the timestamp when a handler is attached,\r\n\t // and the handler would only fire if the event passed to it was fired\r\n\t // AFTER it was attached.\r\n\t if (useMicrotaskFix) {\r\n\t const attachedTimestamp = currentFlushTimestamp;\r\n\t const original = handler;\r\n\t //@ts-expect-error\r\n\t handler = original._wrapper = function (e) {\r\n\t if (\r\n\t // no bubbling, should always fire.\r\n\t // this is just a safety net in case event.timeStamp is unreliable in\r\n\t // certain weird environments...\r\n\t e.target === e.currentTarget ||\r\n\t // event is fired after handler attachment\r\n\t e.timeStamp >= attachedTimestamp ||\r\n\t // bail for environments that have buggy event.timeStamp implementations\r\n\t // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState\r\n\t // #9681 QtWebEngine event.timeStamp is negative value\r\n\t e.timeStamp <= 0 ||\r\n\t // #9448 bail if event is fired in another document in a multi-page\r\n\t // electron/nw.js app, since event.timeStamp will be using a different\r\n\t // starting reference\r\n\t e.target.ownerDocument !== document) {\r\n\t return original.apply(this, arguments);\r\n\t }\r\n\t };\r\n\t }\r\n\t target.addEventListener(name, handler, supportsPassive ? { capture, passive } : capture);\r\n\t}\r\n\tfunction remove(name, handler, capture, _target) {\r\n\t (_target || target).removeEventListener(name, \r\n\t //@ts-expect-error\r\n\t handler._wrapper || handler, capture);\r\n\t}\r\n\tfunction updateDOMListeners(oldVnode, vnode) {\r\n\t if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\r\n\t return;\r\n\t }\r\n\t const on = vnode.data.on || {};\r\n\t const oldOn = oldVnode.data.on || {};\r\n\t // vnode is empty when removing all listeners,\r\n\t // and use old vnode dom element\r\n\t target = vnode.elm || oldVnode.elm;\r\n\t normalizeEvents(on);\r\n\t updateListeners(on, oldOn, add, remove, createOnceHandler, vnode.context);\r\n\t target = undefined;\r\n\t}\r\n\tvar events = {\r\n\t create: updateDOMListeners,\r\n\t update: updateDOMListeners,\r\n\t // @ts-expect-error emptyNode has actually data\r\n\t destroy: (vnode) => updateDOMListeners(vnode, emptyNode)\r\n\t};\n\n\tlet svgContainer;\r\n\tfunction updateDOMProps(oldVnode, vnode) {\r\n\t if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\r\n\t return;\r\n\t }\r\n\t let key, cur;\r\n\t const elm = vnode.elm;\r\n\t const oldProps = oldVnode.data.domProps || {};\r\n\t let props = vnode.data.domProps || {};\r\n\t // clone observed objects, as the user probably wants to mutate it\r\n\t if (isDef(props.__ob__) || isTrue(props._v_attr_proxy)) {\r\n\t props = vnode.data.domProps = extend({}, props);\r\n\t }\r\n\t for (key in oldProps) {\r\n\t if (!(key in props)) {\r\n\t elm[key] = '';\r\n\t }\r\n\t }\r\n\t for (key in props) {\r\n\t cur = props[key];\r\n\t // ignore children if the node has textContent or innerHTML,\r\n\t // as these will throw away existing DOM nodes and cause removal errors\r\n\t // on subsequent patches (#3360)\r\n\t if (key === 'textContent' || key === 'innerHTML') {\r\n\t if (vnode.children)\r\n\t vnode.children.length = 0;\r\n\t if (cur === oldProps[key])\r\n\t continue;\r\n\t // #6601 work around Chrome version <= 55 bug where single textNode\r\n\t // replaced by innerHTML/textContent retains its parentNode property\r\n\t if (elm.childNodes.length === 1) {\r\n\t elm.removeChild(elm.childNodes[0]);\r\n\t }\r\n\t }\r\n\t if (key === 'value' && elm.tagName !== 'PROGRESS') {\r\n\t // store value as _value as well since\r\n\t // non-string values will be stringified\r\n\t elm._value = cur;\r\n\t // avoid resetting cursor position when value is the same\r\n\t const strCur = isUndef(cur) ? '' : String(cur);\r\n\t if (shouldUpdateValue(elm, strCur)) {\r\n\t elm.value = strCur;\r\n\t }\r\n\t }\r\n\t else if (key === 'innerHTML' &&\r\n\t isSVG(elm.tagName) &&\r\n\t isUndef(elm.innerHTML)) {\r\n\t // IE doesn't support innerHTML for SVG elements\r\n\t svgContainer = svgContainer || document.createElement('div');\r\n\t svgContainer.innerHTML = `<svg>${cur}</svg>`;\r\n\t const svg = svgContainer.firstChild;\r\n\t while (elm.firstChild) {\r\n\t elm.removeChild(elm.firstChild);\r\n\t }\r\n\t while (svg.firstChild) {\r\n\t elm.appendChild(svg.firstChild);\r\n\t }\r\n\t }\r\n\t else if (\r\n\t // skip the update if old and new VDOM state is the same.\r\n\t // `value` is handled separately because the DOM value may be temporarily\r\n\t // out of sync with VDOM state due to focus, composition and modifiers.\r\n\t // This #4521 by skipping the unnecessary `checked` update.\r\n\t cur !== oldProps[key]) {\r\n\t // some property updates can throw\r\n\t // e.g. `value` on <progress> w/ non-finite value\r\n\t try {\r\n\t elm[key] = cur;\r\n\t }\r\n\t catch (e) { }\r\n\t }\r\n\t }\r\n\t}\r\n\tfunction shouldUpdateValue(elm, checkVal) {\r\n\t return (\r\n\t //@ts-expect-error\r\n\t !elm.composing &&\r\n\t (elm.tagName === 'OPTION' ||\r\n\t isNotInFocusAndDirty(elm, checkVal) ||\r\n\t isDirtyWithModifiers(elm, checkVal)));\r\n\t}\r\n\tfunction isNotInFocusAndDirty(elm, checkVal) {\r\n\t // return true when textbox (.number and .trim) loses focus and its value is\r\n\t // not equal to the updated value\r\n\t let notInFocus = true;\r\n\t // #6157\r\n\t // work around IE bug when accessing document.activeElement in an iframe\r\n\t try {\r\n\t notInFocus = document.activeElement !== elm;\r\n\t }\r\n\t catch (e) { }\r\n\t return notInFocus && elm.value !== checkVal;\r\n\t}\r\n\tfunction isDirtyWithModifiers(elm, newVal) {\r\n\t const value = elm.value;\r\n\t const modifiers = elm._vModifiers; // injected by v-model runtime\r\n\t if (isDef(modifiers)) {\r\n\t if (modifiers.number) {\r\n\t return toNumber(value) !== toNumber(newVal);\r\n\t }\r\n\t if (modifiers.trim) {\r\n\t return value.trim() !== newVal.trim();\r\n\t }\r\n\t }\r\n\t return value !== newVal;\r\n\t}\r\n\tvar domProps = {\r\n\t create: updateDOMProps,\r\n\t update: updateDOMProps\r\n\t};\n\n\tconst parseStyleText = cached(function (cssText) {\r\n\t const res = {};\r\n\t const listDelimiter = /;(?![^(]*\\))/g;\r\n\t const propertyDelimiter = /:(.+)/;\r\n\t cssText.split(listDelimiter).forEach(function (item) {\r\n\t if (item) {\r\n\t const tmp = item.split(propertyDelimiter);\r\n\t tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\r\n\t }\r\n\t });\r\n\t return res;\r\n\t});\r\n\t// merge static and dynamic style data on the same vnode\r\n\tfunction normalizeStyleData(data) {\r\n\t const style = normalizeStyleBinding(data.style);\r\n\t // static style is pre-processed into an object during compilation\r\n\t // and is always a fresh object, so it's safe to merge into it\r\n\t return data.staticStyle ? extend(data.staticStyle, style) : style;\r\n\t}\r\n\t// normalize possible array / string values into Object\r\n\tfunction normalizeStyleBinding(bindingStyle) {\r\n\t if (Array.isArray(bindingStyle)) {\r\n\t return toObject(bindingStyle);\r\n\t }\r\n\t if (typeof bindingStyle === 'string') {\r\n\t return parseStyleText(bindingStyle);\r\n\t }\r\n\t return bindingStyle;\r\n\t}\r\n\t/**\r\n\t * parent component style should be after child's\r\n\t * so that parent component's style could override it\r\n\t */\r\n\tfunction getStyle(vnode, checkChild) {\r\n\t const res = {};\r\n\t let styleData;\r\n\t if (checkChild) {\r\n\t let childNode = vnode;\r\n\t while (childNode.componentInstance) {\r\n\t childNode = childNode.componentInstance._vnode;\r\n\t if (childNode &&\r\n\t childNode.data &&\r\n\t (styleData = normalizeStyleData(childNode.data))) {\r\n\t extend(res, styleData);\r\n\t }\r\n\t }\r\n\t }\r\n\t if ((styleData = normalizeStyleData(vnode.data))) {\r\n\t extend(res, styleData);\r\n\t }\r\n\t let parentNode = vnode;\r\n\t // @ts-expect-error parentNode.parent not VNodeWithData\r\n\t while ((parentNode = parentNode.parent)) {\r\n\t if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\r\n\t extend(res, styleData);\r\n\t }\r\n\t }\r\n\t return res;\r\n\t}\n\n\tconst cssVarRE = /^--/;\r\n\tconst importantRE = /\\s*!important$/;\r\n\tconst setProp = (el, name, val) => {\r\n\t /* istanbul ignore if */\r\n\t if (cssVarRE.test(name)) {\r\n\t el.style.setProperty(name, val);\r\n\t }\r\n\t else if (importantRE.test(val)) {\r\n\t el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');\r\n\t }\r\n\t else {\r\n\t const normalizedName = normalize(name);\r\n\t if (Array.isArray(val)) {\r\n\t // Support values array created by autoprefixer, e.g.\r\n\t // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\r\n\t // Set them one by one, and the browser will only set those it can recognize\r\n\t for (let i = 0, len = val.length; i < len; i++) {\r\n\t el.style[normalizedName] = val[i];\r\n\t }\r\n\t }\r\n\t else {\r\n\t el.style[normalizedName] = val;\r\n\t }\r\n\t }\r\n\t};\r\n\tconst vendorNames = ['Webkit', 'Moz', 'ms'];\r\n\tlet emptyStyle;\r\n\tconst normalize = cached(function (prop) {\r\n\t emptyStyle = emptyStyle || document.createElement('div').style;\r\n\t prop = camelize(prop);\r\n\t if (prop !== 'filter' && prop in emptyStyle) {\r\n\t return prop;\r\n\t }\r\n\t const capName = prop.charAt(0).toUpperCase() + prop.slice(1);\r\n\t for (let i = 0; i < vendorNames.length; i++) {\r\n\t const name = vendorNames[i] + capName;\r\n\t if (name in emptyStyle) {\r\n\t return name;\r\n\t }\r\n\t }\r\n\t});\r\n\tfunction updateStyle(oldVnode, vnode) {\r\n\t const data = vnode.data;\r\n\t const oldData = oldVnode.data;\r\n\t if (isUndef(data.staticStyle) &&\r\n\t isUndef(data.style) &&\r\n\t isUndef(oldData.staticStyle) &&\r\n\t isUndef(oldData.style)) {\r\n\t return;\r\n\t }\r\n\t let cur, name;\r\n\t const el = vnode.elm;\r\n\t const oldStaticStyle = oldData.staticStyle;\r\n\t const oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\r\n\t // if static style exists, stylebinding already merged into it when doing normalizeStyleData\r\n\t const oldStyle = oldStaticStyle || oldStyleBinding;\r\n\t const style = normalizeStyleBinding(vnode.data.style) || {};\r\n\t // store normalized style under a different key for next diff\r\n\t // make sure to clone it if it's reactive, since the user likely wants\r\n\t // to mutate it.\r\n\t vnode.data.normalizedStyle = isDef(style.__ob__) ? extend({}, style) : style;\r\n\t const newStyle = getStyle(vnode, true);\r\n\t for (name in oldStyle) {\r\n\t if (isUndef(newStyle[name])) {\r\n\t setProp(el, name, '');\r\n\t }\r\n\t }\r\n\t for (name in newStyle) {\r\n\t cur = newStyle[name];\r\n\t if (cur !== oldStyle[name]) {\r\n\t // ie9 setting to null has no effect, must use empty string\r\n\t setProp(el, name, cur == null ? '' : cur);\r\n\t }\r\n\t }\r\n\t}\r\n\tvar style = {\r\n\t create: updateStyle,\r\n\t update: updateStyle\r\n\t};\n\n\tconst whitespaceRE = /\\s+/;\r\n\t/**\r\n\t * Add class with compatibility for SVG since classList is not supported on\r\n\t * SVG elements in IE\r\n\t */\r\n\tfunction addClass(el, cls) {\r\n\t /* istanbul ignore if */\r\n\t if (!cls || !(cls = cls.trim())) {\r\n\t return;\r\n\t }\r\n\t /* istanbul ignore else */\r\n\t if (el.classList) {\r\n\t if (cls.indexOf(' ') > -1) {\r\n\t cls.split(whitespaceRE).forEach(c => el.classList.add(c));\r\n\t }\r\n\t else {\r\n\t el.classList.add(cls);\r\n\t }\r\n\t }\r\n\t else {\r\n\t const cur = ` ${el.getAttribute('class') || ''} `;\r\n\t if (cur.indexOf(' ' + cls + ' ') < 0) {\r\n\t el.setAttribute('class', (cur + cls).trim());\r\n\t }\r\n\t }\r\n\t}\r\n\t/**\r\n\t * Remove class with compatibility for SVG since classList is not supported on\r\n\t * SVG elements in IE\r\n\t */\r\n\tfunction removeClass(el, cls) {\r\n\t /* istanbul ignore if */\r\n\t if (!cls || !(cls = cls.trim())) {\r\n\t return;\r\n\t }\r\n\t /* istanbul ignore else */\r\n\t if (el.classList) {\r\n\t if (cls.indexOf(' ') > -1) {\r\n\t cls.split(whitespaceRE).forEach(c => el.classList.remove(c));\r\n\t }\r\n\t else {\r\n\t el.classList.remove(cls);\r\n\t }\r\n\t if (!el.classList.length) {\r\n\t el.removeAttribute('class');\r\n\t }\r\n\t }\r\n\t else {\r\n\t let cur = ` ${el.getAttribute('class') || ''} `;\r\n\t const tar = ' ' + cls + ' ';\r\n\t while (cur.indexOf(tar) >= 0) {\r\n\t cur = cur.replace(tar, ' ');\r\n\t }\r\n\t cur = cur.trim();\r\n\t if (cur) {\r\n\t el.setAttribute('class', cur);\r\n\t }\r\n\t else {\r\n\t el.removeAttribute('class');\r\n\t }\r\n\t }\r\n\t}\n\n\tfunction resolveTransition(def) {\r\n\t if (!def) {\r\n\t return;\r\n\t }\r\n\t /* istanbul ignore else */\r\n\t if (typeof def === 'object') {\r\n\t const res = {};\r\n\t if (def.css !== false) {\r\n\t extend(res, autoCssTransition(def.name || 'v'));\r\n\t }\r\n\t extend(res, def);\r\n\t return res;\r\n\t }\r\n\t else if (typeof def === 'string') {\r\n\t return autoCssTransition(def);\r\n\t }\r\n\t}\r\n\tconst autoCssTransition = cached(name => {\r\n\t return {\r\n\t enterClass: `${name}-enter`,\r\n\t enterToClass: `${name}-enter-to`,\r\n\t enterActiveClass: `${name}-enter-active`,\r\n\t leaveClass: `${name}-leave`,\r\n\t leaveToClass: `${name}-leave-to`,\r\n\t leaveActiveClass: `${name}-leave-active`\r\n\t };\r\n\t});\r\n\tconst hasTransition = inBrowser && !isIE9;\r\n\tconst TRANSITION = 'transition';\r\n\tconst ANIMATION = 'animation';\r\n\t// Transition property/event sniffing\r\n\tlet transitionProp = 'transition';\r\n\tlet transitionEndEvent = 'transitionend';\r\n\tlet animationProp = 'animation';\r\n\tlet animationEndEvent = 'animationend';\r\n\tif (hasTransition) {\r\n\t /* istanbul ignore if */\r\n\t if (window.ontransitionend === undefined &&\r\n\t window.onwebkittransitionend !== undefined) {\r\n\t transitionProp = 'WebkitTransition';\r\n\t transitionEndEvent = 'webkitTransitionEnd';\r\n\t }\r\n\t if (window.onanimationend === undefined &&\r\n\t window.onwebkitanimationend !== undefined) {\r\n\t animationProp = 'WebkitAnimation';\r\n\t animationEndEvent = 'webkitAnimationEnd';\r\n\t }\r\n\t}\r\n\t// binding to window is necessary to make hot reload work in IE in strict mode\r\n\tconst raf = inBrowser\r\n\t ? window.requestAnimationFrame\r\n\t ? window.requestAnimationFrame.bind(window)\r\n\t : setTimeout\r\n\t : /* istanbul ignore next */ /* istanbul ignore next */ fn => fn();\r\n\tfunction nextFrame(fn) {\r\n\t raf(() => {\r\n\t // @ts-expect-error\r\n\t raf(fn);\r\n\t });\r\n\t}\r\n\tfunction addTransitionClass(el, cls) {\r\n\t const transitionClasses = el._transitionClasses || (el._transitionClasses = []);\r\n\t if (transitionClasses.indexOf(cls) < 0) {\r\n\t transitionClasses.push(cls);\r\n\t addClass(el, cls);\r\n\t }\r\n\t}\r\n\tfunction removeTransitionClass(el, cls) {\r\n\t if (el._transitionClasses) {\r\n\t remove$2(el._transitionClasses, cls);\r\n\t }\r\n\t removeClass(el, cls);\r\n\t}\r\n\tfunction whenTransitionEnds(el, expectedType, cb) {\r\n\t const { type, timeout, propCount } = getTransitionInfo(el, expectedType);\r\n\t if (!type)\r\n\t return cb();\r\n\t const event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\r\n\t let ended = 0;\r\n\t const end = () => {\r\n\t el.removeEventListener(event, onEnd);\r\n\t cb();\r\n\t };\r\n\t const onEnd = e => {\r\n\t if (e.target === el) {\r\n\t if (++ended >= propCount) {\r\n\t end();\r\n\t }\r\n\t }\r\n\t };\r\n\t setTimeout(() => {\r\n\t if (ended < propCount) {\r\n\t end();\r\n\t }\r\n\t }, timeout + 1);\r\n\t el.addEventListener(event, onEnd);\r\n\t}\r\n\tconst transformRE = /\\b(transform|all)(,|$)/;\r\n\tfunction getTransitionInfo(el, expectedType) {\r\n\t const styles = window.getComputedStyle(el);\r\n\t // JSDOM may return undefined for transition properties\r\n\t const transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');\r\n\t const transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');\r\n\t const transitionTimeout = getTimeout(transitionDelays, transitionDurations);\r\n\t const animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');\r\n\t const animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');\r\n\t const animationTimeout = getTimeout(animationDelays, animationDurations);\r\n\t let type;\r\n\t let timeout = 0;\r\n\t let propCount = 0;\r\n\t /* istanbul ignore if */\r\n\t if (expectedType === TRANSITION) {\r\n\t if (transitionTimeout > 0) {\r\n\t type = TRANSITION;\r\n\t timeout = transitionTimeout;\r\n\t propCount = transitionDurations.length;\r\n\t }\r\n\t }\r\n\t else if (expectedType === ANIMATION) {\r\n\t if (animationTimeout > 0) {\r\n\t type = ANIMATION;\r\n\t timeout = animationTimeout;\r\n\t propCount = animationDurations.length;\r\n\t }\r\n\t }\r\n\t else {\r\n\t timeout = Math.max(transitionTimeout, animationTimeout);\r\n\t type =\r\n\t timeout > 0\r\n\t ? transitionTimeout > animationTimeout\r\n\t ? TRANSITION\r\n\t : ANIMATION\r\n\t : null;\r\n\t propCount = type\r\n\t ? type === TRANSITION\r\n\t ? transitionDurations.length\r\n\t : animationDurations.length\r\n\t : 0;\r\n\t }\r\n\t const hasTransform = type === TRANSITION && transformRE.test(styles[transitionProp + 'Property']);\r\n\t return {\r\n\t type,\r\n\t timeout,\r\n\t propCount,\r\n\t hasTransform\r\n\t };\r\n\t}\r\n\tfunction getTimeout(delays, durations) {\r\n\t /* istanbul ignore next */\r\n\t while (delays.length < durations.length) {\r\n\t delays = delays.concat(delays);\r\n\t }\r\n\t return Math.max.apply(null, durations.map((d, i) => {\r\n\t return toMs(d) + toMs(delays[i]);\r\n\t }));\r\n\t}\r\n\t// Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers\r\n\t// in a locale-dependent way, using a comma instead of a dot.\r\n\t// If comma is not replaced with a dot, the input will be rounded down (i.e. acting\r\n\t// as a floor function) causing unexpected behaviors\r\n\tfunction toMs(s) {\r\n\t return Number(s.slice(0, -1).replace(',', '.')) * 1000;\r\n\t}\n\n\tfunction enter(vnode, toggleDisplay) {\r\n\t const el = vnode.elm;\r\n\t // call leave callback now\r\n\t if (isDef(el._leaveCb)) {\r\n\t el._leaveCb.cancelled = true;\r\n\t el._leaveCb();\r\n\t }\r\n\t const data = resolveTransition(vnode.data.transition);\r\n\t if (isUndef(data)) {\r\n\t return;\r\n\t }\r\n\t /* istanbul ignore if */\r\n\t if (isDef(el._enterCb) || el.nodeType !== 1) {\r\n\t return;\r\n\t }\r\n\t const { css, type, enterClass, enterToClass, enterActiveClass, appearClass, appearToClass, appearActiveClass, beforeEnter, enter, afterEnter, enterCancelled, beforeAppear, appear, afterAppear, appearCancelled, duration } = data;\r\n\t // activeInstance will always be the <transition> component managing this\r\n\t // transition. One edge case to check is when the <transition> is placed\r\n\t // as the root node of a child component. In that case we need to check\r\n\t // <transition>'s parent for appear check.\r\n\t let context = activeInstance;\r\n\t let transitionNode = activeInstance.$vnode;\r\n\t while (transitionNode && transitionNode.parent) {\r\n\t context = transitionNode.context;\r\n\t transitionNode = transitionNode.parent;\r\n\t }\r\n\t const isAppear = !context._isMounted || !vnode.isRootInsert;\r\n\t if (isAppear && !appear && appear !== '') {\r\n\t return;\r\n\t }\r\n\t const startClass = isAppear && appearClass ? appearClass : enterClass;\r\n\t const activeClass = isAppear && appearActiveClass ? appearActiveClass : enterActiveClass;\r\n\t const toClass = isAppear && appearToClass ? appearToClass : enterToClass;\r\n\t const beforeEnterHook = isAppear ? beforeAppear || beforeEnter : beforeEnter;\r\n\t const enterHook = isAppear ? (isFunction(appear) ? appear : enter) : enter;\r\n\t const afterEnterHook = isAppear ? afterAppear || afterEnter : afterEnter;\r\n\t const enterCancelledHook = isAppear\r\n\t ? appearCancelled || enterCancelled\r\n\t : enterCancelled;\r\n\t const explicitEnterDuration = toNumber(isObject(duration) ? duration.enter : duration);\r\n\t if (explicitEnterDuration != null) {\r\n\t checkDuration(explicitEnterDuration, 'enter', vnode);\r\n\t }\r\n\t const expectsCSS = css !== false && !isIE9;\r\n\t const userWantsControl = getHookArgumentsLength(enterHook);\r\n\t const cb = (el._enterCb = once(() => {\r\n\t if (expectsCSS) {\r\n\t removeTransitionClass(el, toClass);\r\n\t removeTransitionClass(el, activeClass);\r\n\t }\r\n\t // @ts-expect-error\r\n\t if (cb.cancelled) {\r\n\t if (expectsCSS) {\r\n\t removeTransitionClass(el, startClass);\r\n\t }\r\n\t enterCancelledHook && enterCancelledHook(el);\r\n\t }\r\n\t else {\r\n\t afterEnterHook && afterEnterHook(el);\r\n\t }\r\n\t el._enterCb = null;\r\n\t }));\r\n\t if (!vnode.data.show) {\r\n\t // remove pending leave element on enter by injecting an insert hook\r\n\t mergeVNodeHook(vnode, 'insert', () => {\r\n\t const parent = el.parentNode;\r\n\t const pendingNode = parent && parent._pending && parent._pending[vnode.key];\r\n\t if (pendingNode &&\r\n\t pendingNode.tag === vnode.tag &&\r\n\t pendingNode.elm._leaveCb) {\r\n\t pendingNode.elm._leaveCb();\r\n\t }\r\n\t enterHook && enterHook(el, cb);\r\n\t });\r\n\t }\r\n\t // start enter transition\r\n\t beforeEnterHook && beforeEnterHook(el);\r\n\t if (expectsCSS) {\r\n\t addTransitionClass(el, startClass);\r\n\t addTransitionClass(el, activeClass);\r\n\t nextFrame(() => {\r\n\t removeTransitionClass(el, startClass);\r\n\t // @ts-expect-error\r\n\t if (!cb.cancelled) {\r\n\t addTransitionClass(el, toClass);\r\n\t if (!userWantsControl) {\r\n\t if (isValidDuration(explicitEnterDuration)) {\r\n\t setTimeout(cb, explicitEnterDuration);\r\n\t }\r\n\t else {\r\n\t whenTransitionEnds(el, type, cb);\r\n\t }\r\n\t }\r\n\t }\r\n\t });\r\n\t }\r\n\t if (vnode.data.show) {\r\n\t toggleDisplay && toggleDisplay();\r\n\t enterHook && enterHook(el, cb);\r\n\t }\r\n\t if (!expectsCSS && !userWantsControl) {\r\n\t cb();\r\n\t }\r\n\t}\r\n\tfunction leave(vnode, rm) {\r\n\t const el = vnode.elm;\r\n\t // call enter callback now\r\n\t if (isDef(el._enterCb)) {\r\n\t el._enterCb.cancelled = true;\r\n\t el._enterCb();\r\n\t }\r\n\t const data = resolveTransition(vnode.data.transition);\r\n\t if (isUndef(data) || el.nodeType !== 1) {\r\n\t return rm();\r\n\t }\r\n\t /* istanbul ignore if */\r\n\t if (isDef(el._leaveCb)) {\r\n\t return;\r\n\t }\r\n\t const { css, type, leaveClass, leaveToClass, leaveActiveClass, beforeLeave, leave, afterLeave, leaveCancelled, delayLeave, duration } = data;\r\n\t const expectsCSS = css !== false && !isIE9;\r\n\t const userWantsControl = getHookArgumentsLength(leave);\r\n\t const explicitLeaveDuration = toNumber(isObject(duration) ? duration.leave : duration);\r\n\t if (isDef(explicitLeaveDuration)) {\r\n\t checkDuration(explicitLeaveDuration, 'leave', vnode);\r\n\t }\r\n\t const cb = (el._leaveCb = once(() => {\r\n\t if (el.parentNode && el.parentNode._pending) {\r\n\t el.parentNode._pending[vnode.key] = null;\r\n\t }\r\n\t if (expectsCSS) {\r\n\t removeTransitionClass(el, leaveToClass);\r\n\t removeTransitionClass(el, leaveActiveClass);\r\n\t }\r\n\t // @ts-expect-error\r\n\t if (cb.cancelled) {\r\n\t if (expectsCSS) {\r\n\t removeTransitionClass(el, leaveClass);\r\n\t }\r\n\t leaveCancelled && leaveCancelled(el);\r\n\t }\r\n\t else {\r\n\t rm();\r\n\t afterLeave && afterLeave(el);\r\n\t }\r\n\t el._leaveCb = null;\r\n\t }));\r\n\t if (delayLeave) {\r\n\t delayLeave(performLeave);\r\n\t }\r\n\t else {\r\n\t performLeave();\r\n\t }\r\n\t function performLeave() {\r\n\t // the delayed leave may have already been cancelled\r\n\t // @ts-expect-error\r\n\t if (cb.cancelled) {\r\n\t return;\r\n\t }\r\n\t // record leaving element\r\n\t if (!vnode.data.show && el.parentNode) {\r\n\t (el.parentNode._pending || (el.parentNode._pending = {}))[vnode.key] =\r\n\t vnode;\r\n\t }\r\n\t beforeLeave && beforeLeave(el);\r\n\t if (expectsCSS) {\r\n\t addTransitionClass(el, leaveClass);\r\n\t addTransitionClass(el, leaveActiveClass);\r\n\t nextFrame(() => {\r\n\t removeTransitionClass(el, leaveClass);\r\n\t // @ts-expect-error\r\n\t if (!cb.cancelled) {\r\n\t addTransitionClass(el, leaveToClass);\r\n\t if (!userWantsControl) {\r\n\t if (isValidDuration(explicitLeaveDuration)) {\r\n\t setTimeout(cb, explicitLeaveDuration);\r\n\t }\r\n\t else {\r\n\t whenTransitionEnds(el, type, cb);\r\n\t }\r\n\t }\r\n\t }\r\n\t });\r\n\t }\r\n\t leave && leave(el, cb);\r\n\t if (!expectsCSS && !userWantsControl) {\r\n\t cb();\r\n\t }\r\n\t }\r\n\t}\r\n\t// only used in dev mode\r\n\tfunction checkDuration(val, name, vnode) {\r\n\t if (typeof val !== 'number') {\r\n\t warn(`<transition> explicit ${name} duration is not a valid number - ` +\r\n\t `got ${JSON.stringify(val)}.`, vnode.context);\r\n\t }\r\n\t else if (isNaN(val)) {\r\n\t warn(`<transition> explicit ${name} duration is NaN - ` +\r\n\t 'the duration expression might be incorrect.', vnode.context);\r\n\t }\r\n\t}\r\n\tfunction isValidDuration(val) {\r\n\t return typeof val === 'number' && !isNaN(val);\r\n\t}\r\n\t/**\r\n\t * Normalize a transition hook's argument length. The hook may be:\r\n\t * - a merged hook (invoker) with the original in .fns\r\n\t * - a wrapped component method (check ._length)\r\n\t * - a plain function (.length)\r\n\t */\r\n\tfunction getHookArgumentsLength(fn) {\r\n\t if (isUndef(fn)) {\r\n\t return false;\r\n\t }\r\n\t // @ts-expect-error\r\n\t const invokerFns = fn.fns;\r\n\t if (isDef(invokerFns)) {\r\n\t // invoker\r\n\t return getHookArgumentsLength(Array.isArray(invokerFns) ? invokerFns[0] : invokerFns);\r\n\t }\r\n\t else {\r\n\t // @ts-expect-error\r\n\t return (fn._length || fn.length) > 1;\r\n\t }\r\n\t}\r\n\tfunction _enter(_, vnode) {\r\n\t if (vnode.data.show !== true) {\r\n\t enter(vnode);\r\n\t }\r\n\t}\r\n\tvar transition = inBrowser\r\n\t ? {\r\n\t create: _enter,\r\n\t activate: _enter,\r\n\t remove(vnode, rm) {\r\n\t /* istanbul ignore else */\r\n\t if (vnode.data.show !== true) {\r\n\t // @ts-expect-error\r\n\t leave(vnode, rm);\r\n\t }\r\n\t else {\r\n\t rm();\r\n\t }\r\n\t }\r\n\t }\r\n\t : {};\n\n\tvar platformModules = [attrs, klass, events, domProps, style, transition];\n\n\t// the directive module should be applied last, after all\r\n\t// built-in modules have been applied.\r\n\tconst modules = platformModules.concat(baseModules);\r\n\tconst patch = createPatchFunction({ nodeOps, modules });\n\n\t/**\r\n\t * Not type checking this file because flow doesn't like attaching\r\n\t * properties to Elements.\r\n\t */\r\n\t/* istanbul ignore if */\r\n\tif (isIE9) {\r\n\t // http://www.matts411.com/post/internet-explorer-9-oninput/\r\n\t document.addEventListener('selectionchange', () => {\r\n\t const el = document.activeElement;\r\n\t // @ts-expect-error\r\n\t if (el && el.vmodel) {\r\n\t trigger(el, 'input');\r\n\t }\r\n\t });\r\n\t}\r\n\tconst directive = {\r\n\t inserted(el, binding, vnode, oldVnode) {\r\n\t if (vnode.tag === 'select') {\r\n\t // #6903\r\n\t if (oldVnode.elm && !oldVnode.elm._vOptions) {\r\n\t mergeVNodeHook(vnode, 'postpatch', () => {\r\n\t directive.componentUpdated(el, binding, vnode);\r\n\t });\r\n\t }\r\n\t else {\r\n\t setSelected(el, binding, vnode.context);\r\n\t }\r\n\t el._vOptions = [].map.call(el.options, getValue);\r\n\t }\r\n\t else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\r\n\t el._vModifiers = binding.modifiers;\r\n\t if (!binding.modifiers.lazy) {\r\n\t el.addEventListener('compositionstart', onCompositionStart);\r\n\t el.addEventListener('compositionend', onCompositionEnd);\r\n\t // Safari < 10.2 & UIWebView doesn't fire compositionend when\r\n\t // switching focus before confirming composition choice\r\n\t // this also fixes the issue where some browsers e.g. iOS Chrome\r\n\t // fires \"change\" instead of \"input\" on autocomplete.\r\n\t el.addEventListener('change', onCompositionEnd);\r\n\t /* istanbul ignore if */\r\n\t if (isIE9) {\r\n\t el.vmodel = true;\r\n\t }\r\n\t }\r\n\t }\r\n\t },\r\n\t componentUpdated(el, binding, vnode) {\r\n\t if (vnode.tag === 'select') {\r\n\t setSelected(el, binding, vnode.context);\r\n\t // in case the options rendered by v-for have changed,\r\n\t // it's possible that the value is out-of-sync with the rendered options.\r\n\t // detect such cases and filter out values that no longer has a matching\r\n\t // option in the DOM.\r\n\t const prevOptions = el._vOptions;\r\n\t const curOptions = (el._vOptions = [].map.call(el.options, getValue));\r\n\t if (curOptions.some((o, i) => !looseEqual(o, prevOptions[i]))) {\r\n\t // trigger change event if\r\n\t // no matching option found for at least one value\r\n\t const needReset = el.multiple\r\n\t ? binding.value.some(v => hasNoMatchingOption(v, curOptions))\r\n\t : binding.value !== binding.oldValue &&\r\n\t hasNoMatchingOption(binding.value, curOptions);\r\n\t if (needReset) {\r\n\t trigger(el, 'change');\r\n\t }\r\n\t }\r\n\t }\r\n\t }\r\n\t};\r\n\tfunction setSelected(el, binding, vm) {\r\n\t actuallySetSelected(el, binding, vm);\r\n\t /* istanbul ignore if */\r\n\t if (isIE || isEdge) {\r\n\t setTimeout(() => {\r\n\t actuallySetSelected(el, binding, vm);\r\n\t }, 0);\r\n\t }\r\n\t}\r\n\tfunction actuallySetSelected(el, binding, vm) {\r\n\t const value = binding.value;\r\n\t const isMultiple = el.multiple;\r\n\t if (isMultiple && !Array.isArray(value)) {\r\n\t warn(`<select multiple v-model=\"${binding.expression}\"> ` +\r\n\t `expects an Array value for its binding, but got ${Object.prototype.toString\r\n\t .call(value)\r\n\t .slice(8, -1)}`, vm);\r\n\t return;\r\n\t }\r\n\t let selected, option;\r\n\t for (let i = 0, l = el.options.length; i < l; i++) {\r\n\t option = el.options[i];\r\n\t if (isMultiple) {\r\n\t selected = looseIndexOf(value, getValue(option)) > -1;\r\n\t if (option.selected !== selected) {\r\n\t option.selected = selected;\r\n\t }\r\n\t }\r\n\t else {\r\n\t if (looseEqual(getValue(option), value)) {\r\n\t if (el.selectedIndex !== i) {\r\n\t el.selectedIndex = i;\r\n\t }\r\n\t return;\r\n\t }\r\n\t }\r\n\t }\r\n\t if (!isMultiple) {\r\n\t el.selectedIndex = -1;\r\n\t }\r\n\t}\r\n\tfunction hasNoMatchingOption(value, options) {\r\n\t return options.every(o => !looseEqual(o, value));\r\n\t}\r\n\tfunction getValue(option) {\r\n\t return '_value' in option ? option._value : option.value;\r\n\t}\r\n\tfunction onCompositionStart(e) {\r\n\t e.target.composing = true;\r\n\t}\r\n\tfunction onCompositionEnd(e) {\r\n\t // prevent triggering an input event for no reason\r\n\t if (!e.target.composing)\r\n\t return;\r\n\t e.target.composing = false;\r\n\t trigger(e.target, 'input');\r\n\t}\r\n\tfunction trigger(el, type) {\r\n\t const e = document.createEvent('HTMLEvents');\r\n\t e.initEvent(type, true, true);\r\n\t el.dispatchEvent(e);\r\n\t}\n\n\t// recursively search for possible transition defined inside the component root\r\n\tfunction locateNode(vnode) {\r\n\t // @ts-expect-error\r\n\t return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\r\n\t ? locateNode(vnode.componentInstance._vnode)\r\n\t : vnode;\r\n\t}\r\n\tvar show = {\r\n\t bind(el, { value }, vnode) {\r\n\t vnode = locateNode(vnode);\r\n\t const transition = vnode.data && vnode.data.transition;\r\n\t const originalDisplay = (el.__vOriginalDisplay =\r\n\t el.style.display === 'none' ? '' : el.style.display);\r\n\t if (value && transition) {\r\n\t vnode.data.show = true;\r\n\t enter(vnode, () => {\r\n\t el.style.display = originalDisplay;\r\n\t });\r\n\t }\r\n\t else {\r\n\t el.style.display = value ? originalDisplay : 'none';\r\n\t }\r\n\t },\r\n\t update(el, { value, oldValue }, vnode) {\r\n\t /* istanbul ignore if */\r\n\t if (!value === !oldValue)\r\n\t return;\r\n\t vnode = locateNode(vnode);\r\n\t const transition = vnode.data && vnode.data.transition;\r\n\t if (transition) {\r\n\t vnode.data.show = true;\r\n\t if (value) {\r\n\t enter(vnode, () => {\r\n\t el.style.display = el.__vOriginalDisplay;\r\n\t });\r\n\t }\r\n\t else {\r\n\t leave(vnode, () => {\r\n\t el.style.display = 'none';\r\n\t });\r\n\t }\r\n\t }\r\n\t else {\r\n\t el.style.display = value ? el.__vOriginalDisplay : 'none';\r\n\t }\r\n\t },\r\n\t unbind(el, binding, vnode, oldVnode, isDestroy) {\r\n\t if (!isDestroy) {\r\n\t el.style.display = el.__vOriginalDisplay;\r\n\t }\r\n\t }\r\n\t};\n\n\tvar platformDirectives = {\r\n\t model: directive,\r\n\t show\r\n\t};\n\n\t// Provides transition support for a single element/component.\r\n\tconst transitionProps = {\r\n\t name: String,\r\n\t appear: Boolean,\r\n\t css: Boolean,\r\n\t mode: String,\r\n\t type: String,\r\n\t enterClass: String,\r\n\t leaveClass: String,\r\n\t enterToClass: String,\r\n\t leaveToClass: String,\r\n\t enterActiveClass: String,\r\n\t leaveActiveClass: String,\r\n\t appearClass: String,\r\n\t appearActiveClass: String,\r\n\t appearToClass: String,\r\n\t duration: [Number, String, Object]\r\n\t};\r\n\t// in case the child is also an abstract component, e.g. <keep-alive>\r\n\t// we want to recursively retrieve the real component to be rendered\r\n\tfunction getRealChild(vnode) {\r\n\t const compOptions = vnode && vnode.componentOptions;\r\n\t if (compOptions && compOptions.Ctor.options.abstract) {\r\n\t return getRealChild(getFirstComponentChild(compOptions.children));\r\n\t }\r\n\t else {\r\n\t return vnode;\r\n\t }\r\n\t}\r\n\tfunction extractTransitionData(comp) {\r\n\t const data = {};\r\n\t const options = comp.$options;\r\n\t // props\r\n\t for (const key in options.propsData) {\r\n\t data[key] = comp[key];\r\n\t }\r\n\t // events.\r\n\t // extract listeners and pass them directly to the transition methods\r\n\t const listeners = options._parentListeners;\r\n\t for (const key in listeners) {\r\n\t data[camelize(key)] = listeners[key];\r\n\t }\r\n\t return data;\r\n\t}\r\n\tfunction placeholder(h, rawChild) {\r\n\t // @ts-expect-error\r\n\t if (/\\d-keep-alive$/.test(rawChild.tag)) {\r\n\t return h('keep-alive', {\r\n\t props: rawChild.componentOptions.propsData\r\n\t });\r\n\t }\r\n\t}\r\n\tfunction hasParentTransition(vnode) {\r\n\t while ((vnode = vnode.parent)) {\r\n\t if (vnode.data.transition) {\r\n\t return true;\r\n\t }\r\n\t }\r\n\t}\r\n\tfunction isSameChild(child, oldChild) {\r\n\t return oldChild.key === child.key && oldChild.tag === child.tag;\r\n\t}\r\n\tconst isNotTextNode = (c) => c.tag || isAsyncPlaceholder(c);\r\n\tconst isVShowDirective = d => d.name === 'show';\r\n\tvar Transition = {\r\n\t name: 'transition',\r\n\t props: transitionProps,\r\n\t abstract: true,\r\n\t render(h) {\r\n\t let children = this.$slots.default;\r\n\t if (!children) {\r\n\t return;\r\n\t }\r\n\t // filter out text nodes (possible whitespaces)\r\n\t children = children.filter(isNotTextNode);\r\n\t /* istanbul ignore if */\r\n\t if (!children.length) {\r\n\t return;\r\n\t }\r\n\t // warn multiple elements\r\n\t if (children.length > 1) {\r\n\t warn('<transition> can only be used on a single element. Use ' +\r\n\t '<transition-group> for lists.', this.$parent);\r\n\t }\r\n\t const mode = this.mode;\r\n\t // warn invalid mode\r\n\t if (mode && mode !== 'in-out' && mode !== 'out-in') {\r\n\t warn('invalid <transition> mode: ' + mode, this.$parent);\r\n\t }\r\n\t const rawChild = children[0];\r\n\t // if this is a component root node and the component's\r\n\t // parent container node also has transition, skip.\r\n\t if (hasParentTransition(this.$vnode)) {\r\n\t return rawChild;\r\n\t }\r\n\t // apply transition data to child\r\n\t // use getRealChild() to ignore abstract components e.g. keep-alive\r\n\t const child = getRealChild(rawChild);\r\n\t /* istanbul ignore if */\r\n\t if (!child) {\r\n\t return rawChild;\r\n\t }\r\n\t if (this._leaving) {\r\n\t return placeholder(h, rawChild);\r\n\t }\r\n\t // ensure a key that is unique to the vnode type and to this transition\r\n\t // component instance. This key will be used to remove pending leaving nodes\r\n\t // during entering.\r\n\t const id = `__transition-${this._uid}-`;\r\n\t child.key =\r\n\t child.key == null\r\n\t ? child.isComment\r\n\t ? id + 'comment'\r\n\t : id + child.tag\r\n\t : isPrimitive(child.key)\r\n\t ? String(child.key).indexOf(id) === 0\r\n\t ? child.key\r\n\t : id + child.key\r\n\t : child.key;\r\n\t const data = ((child.data || (child.data = {})).transition =\r\n\t extractTransitionData(this));\r\n\t const oldRawChild = this._vnode;\r\n\t const oldChild = getRealChild(oldRawChild);\r\n\t // mark v-show\r\n\t // so that the transition module can hand over the control to the directive\r\n\t if (child.data.directives && child.data.directives.some(isVShowDirective)) {\r\n\t child.data.show = true;\r\n\t }\r\n\t if (oldChild &&\r\n\t oldChild.data &&\r\n\t !isSameChild(child, oldChild) &&\r\n\t !isAsyncPlaceholder(oldChild) &&\r\n\t // #6687 component root is a comment node\r\n\t !(oldChild.componentInstance &&\r\n\t oldChild.componentInstance._vnode.isComment)) {\r\n\t // replace old child transition data with fresh one\r\n\t // important for dynamic transitions!\r\n\t const oldData = (oldChild.data.transition = extend({}, data));\r\n\t // handle transition mode\r\n\t if (mode === 'out-in') {\r\n\t // return placeholder node and queue update when leave finishes\r\n\t this._leaving = true;\r\n\t mergeVNodeHook(oldData, 'afterLeave', () => {\r\n\t this._leaving = false;\r\n\t this.$forceUpdate();\r\n\t });\r\n\t return placeholder(h, rawChild);\r\n\t }\r\n\t else if (mode === 'in-out') {\r\n\t if (isAsyncPlaceholder(child)) {\r\n\t return oldRawChild;\r\n\t }\r\n\t let delayedLeave;\r\n\t const performLeave = () => {\r\n\t delayedLeave();\r\n\t };\r\n\t mergeVNodeHook(data, 'afterEnter', performLeave);\r\n\t mergeVNodeHook(data, 'enterCancelled', performLeave);\r\n\t mergeVNodeHook(oldData, 'delayLeave', leave => {\r\n\t delayedLeave = leave;\r\n\t });\r\n\t }\r\n\t }\r\n\t return rawChild;\r\n\t }\r\n\t};\n\n\t// Provides transition support for list items.\r\n\tconst props = extend({\r\n\t tag: String,\r\n\t moveClass: String\r\n\t}, transitionProps);\r\n\tdelete props.mode;\r\n\tvar TransitionGroup = {\r\n\t props,\r\n\t beforeMount() {\r\n\t const update = this._update;\r\n\t this._update = (vnode, hydrating) => {\r\n\t const restoreActiveInstance = setActiveInstance(this);\r\n\t // force removing pass\r\n\t this.__patch__(this._vnode, this.kept, false, // hydrating\r\n\t true // removeOnly (!important, avoids unnecessary moves)\r\n\t );\r\n\t this._vnode = this.kept;\r\n\t restoreActiveInstance();\r\n\t update.call(this, vnode, hydrating);\r\n\t };\r\n\t },\r\n\t render(h) {\r\n\t const tag = this.tag || this.$vnode.data.tag || 'span';\r\n\t const map = Object.create(null);\r\n\t const prevChildren = (this.prevChildren = this.children);\r\n\t const rawChildren = this.$slots.default || [];\r\n\t const children = (this.children = []);\r\n\t const transitionData = extractTransitionData(this);\r\n\t for (let i = 0; i < rawChildren.length; i++) {\r\n\t const c = rawChildren[i];\r\n\t if (c.tag) {\r\n\t if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\r\n\t children.push(c);\r\n\t map[c.key] = c;\r\n\t (c.data || (c.data = {})).transition = transitionData;\r\n\t }\r\n\t else {\r\n\t const opts = c.componentOptions;\r\n\t const name = opts\r\n\t ? getComponentName(opts.Ctor.options) || opts.tag || ''\r\n\t : c.tag;\r\n\t warn(`<transition-group> children must be keyed: <${name}>`);\r\n\t }\r\n\t }\r\n\t }\r\n\t if (prevChildren) {\r\n\t const kept = [];\r\n\t const removed = [];\r\n\t for (let i = 0; i < prevChildren.length; i++) {\r\n\t const c = prevChildren[i];\r\n\t c.data.transition = transitionData;\r\n\t // @ts-expect-error .getBoundingClientRect is not typed in Node\r\n\t c.data.pos = c.elm.getBoundingClientRect();\r\n\t if (map[c.key]) {\r\n\t kept.push(c);\r\n\t }\r\n\t else {\r\n\t removed.push(c);\r\n\t }\r\n\t }\r\n\t this.kept = h(tag, null, kept);\r\n\t this.removed = removed;\r\n\t }\r\n\t return h(tag, null, children);\r\n\t },\r\n\t updated() {\r\n\t const children = this.prevChildren;\r\n\t const moveClass = this.moveClass || (this.name || 'v') + '-move';\r\n\t if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\r\n\t return;\r\n\t }\r\n\t // we divide the work into three loops to avoid mixing DOM reads and writes\r\n\t // in each iteration - which helps prevent layout thrashing.\r\n\t children.forEach(callPendingCbs);\r\n\t children.forEach(recordPosition);\r\n\t children.forEach(applyTranslation);\r\n\t // force reflow to put everything in position\r\n\t // assign to this to avoid being removed in tree-shaking\r\n\t // $flow-disable-line\r\n\t this._reflow = document.body.offsetHeight;\r\n\t children.forEach((c) => {\r\n\t if (c.data.moved) {\r\n\t const el = c.elm;\r\n\t const s = el.style;\r\n\t addTransitionClass(el, moveClass);\r\n\t s.transform = s.WebkitTransform = s.transitionDuration = '';\r\n\t el.addEventListener(transitionEndEvent, (el._moveCb = function cb(e) {\r\n\t if (e && e.target !== el) {\r\n\t return;\r\n\t }\r\n\t if (!e || /transform$/.test(e.propertyName)) {\r\n\t el.removeEventListener(transitionEndEvent, cb);\r\n\t el._moveCb = null;\r\n\t removeTransitionClass(el, moveClass);\r\n\t }\r\n\t }));\r\n\t }\r\n\t });\r\n\t },\r\n\t methods: {\r\n\t hasMove(el, moveClass) {\r\n\t /* istanbul ignore if */\r\n\t if (!hasTransition) {\r\n\t return false;\r\n\t }\r\n\t /* istanbul ignore if */\r\n\t if (this._hasMove) {\r\n\t return this._hasMove;\r\n\t }\r\n\t // Detect whether an element with the move class applied has\r\n\t // CSS transitions. Since the element may be inside an entering\r\n\t // transition at this very moment, we make a clone of it and remove\r\n\t // all other transition classes applied to ensure only the move class\r\n\t // is applied.\r\n\t const clone = el.cloneNode();\r\n\t if (el._transitionClasses) {\r\n\t el._transitionClasses.forEach((cls) => {\r\n\t removeClass(clone, cls);\r\n\t });\r\n\t }\r\n\t addClass(clone, moveClass);\r\n\t clone.style.display = 'none';\r\n\t this.$el.appendChild(clone);\r\n\t const info = getTransitionInfo(clone);\r\n\t this.$el.removeChild(clone);\r\n\t return (this._hasMove = info.hasTransform);\r\n\t }\r\n\t }\r\n\t};\r\n\tfunction callPendingCbs(c) {\r\n\t /* istanbul ignore if */\r\n\t if (c.elm._moveCb) {\r\n\t c.elm._moveCb();\r\n\t }\r\n\t /* istanbul ignore if */\r\n\t if (c.elm._enterCb) {\r\n\t c.elm._enterCb();\r\n\t }\r\n\t}\r\n\tfunction recordPosition(c) {\r\n\t c.data.newPos = c.elm.getBoundingClientRect();\r\n\t}\r\n\tfunction applyTranslation(c) {\r\n\t const oldPos = c.data.pos;\r\n\t const newPos = c.data.newPos;\r\n\t const dx = oldPos.left - newPos.left;\r\n\t const dy = oldPos.top - newPos.top;\r\n\t if (dx || dy) {\r\n\t c.data.moved = true;\r\n\t const s = c.elm.style;\r\n\t s.transform = s.WebkitTransform = `translate(${dx}px,${dy}px)`;\r\n\t s.transitionDuration = '0s';\r\n\t }\r\n\t}\n\n\tvar platformComponents = {\r\n\t Transition,\r\n\t TransitionGroup\r\n\t};\n\n\t// install platform specific utils\r\n\tVue.config.mustUseProp = mustUseProp;\r\n\tVue.config.isReservedTag = isReservedTag;\r\n\tVue.config.isReservedAttr = isReservedAttr;\r\n\tVue.config.getTagNamespace = getTagNamespace;\r\n\tVue.config.isUnknownElement = isUnknownElement;\r\n\t// install platform runtime directives & components\r\n\textend(Vue.options.directives, platformDirectives);\r\n\textend(Vue.options.components, platformComponents);\r\n\t// install platform patch function\r\n\tVue.prototype.__patch__ = inBrowser ? patch : noop;\r\n\t// public mount method\r\n\tVue.prototype.$mount = function (el, hydrating) {\r\n\t el = el && inBrowser ? query(el) : undefined;\r\n\t return mountComponent(this, el, hydrating);\r\n\t};\r\n\t// devtools global hook\r\n\t/* istanbul ignore next */\r\n\tif (inBrowser) {\r\n\t setTimeout(() => {\r\n\t if (config.devtools) {\r\n\t if (devtools) {\r\n\t devtools.emit('init', Vue);\r\n\t }\r\n\t else {\r\n\t // @ts-expect-error\r\n\t console[console.info ? 'info' : 'log']('Download the Vue Devtools extension for a better development experience:\\n' +\r\n\t 'https://github.com/vuejs/vue-devtools');\r\n\t }\r\n\t }\r\n\t if (config.productionTip !== false &&\r\n\t typeof console !== 'undefined') {\r\n\t // @ts-expect-error\r\n\t console[console.info ? 'info' : 'log'](`You are running Vue in development mode.\\n` +\r\n\t `Make sure to turn on production mode when deploying for production.\\n` +\r\n\t `See more tips at https://vuejs.org/guide/deployment.html`);\r\n\t }\r\n\t }, 0);\r\n\t}\n\n\textend(Vue, vca);\n\n\tvue_runtime_common_dev = Vue;\n\treturn vue_runtime_common_dev;\n}\n\nvar hasRequiredVue_runtime_common;\n\nfunction requireVue_runtime_common () {\n\tif (hasRequiredVue_runtime_common) return vue_runtime_common.exports;\n\thasRequiredVue_runtime_common = 1;\n\t(function (module) {\n\t\t{\n\t\t module.exports = requireVue_runtime_common_dev();\n\t\t}\n} (vue_runtime_common));\n\treturn vue_runtime_common.exports;\n}\n\n(function (module, exports) {\n\t!function(t,n){module.exports=n();}(self,(function(){return function(){var t={723:function(t,n,e){var o=e(2734),i=e.n(o);n.Z={before:function(){this.$slots.default&&\"\"!==this.text.trim()||(i().util.warn(\"\".concat(this.$options.name,\" cannot be empty and requires a meaningful text content\"),this),this.$destroy(),this.$el.remove());},beforeUpdate:function(){this.text=this.getText();},data:function(){return {text:this.getText()}},computed:{isLongText:function(){return this.text&&this.text.trim().length>20}},methods:{getText:function(){return this.$slots.default?this.$slots.default[0].text.trim():\"\"}}};},1139:function(t,n,e){e.d(n,{Z:function(){return i}});var o=e(723),i={mixins:[o.Z],props:{icon:{type:String,default:\"\"},title:{type:String,default:\"\"},closeAfterClick:{type:Boolean,default:!1},ariaLabel:{type:String,default:\"\"}},emits:[\"click\"],computed:{isIconUrl:function(){try{return new URL(this.icon)}catch(t){return !1}}},methods:{onClick:function(t){if(this.$emit(\"click\",t),this.closeAfterClick){var n=function(t,n){for(var e=t.$parent;e;){if(e.$options.name===n)return e;e=e.$parent;}}(this,\"NcActions\");n&&n.closeMenu&&n.closeMenu(!1);}}}};},5698:function(t,n,e){var o=e(7537),i=e.n(o),r=e(3645),a=e.n(r)()(i());a.push([t.id,\".material-design-icon[data-v-45a871d0]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-45a871d0]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action--disabled[data-v-45a871d0]{pointer-events:none;opacity:.5}.action--disabled[data-v-45a871d0]:hover,.action--disabled[data-v-45a871d0]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-45a871d0]{opacity:1 !important}.action-button[data-v-45a871d0]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;box-sizing:border-box;cursor:pointer;white-space:nowrap;opacity:.7;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;font-size:var(--default-font-size);line-height:44px}.action-button[data-v-45a871d0]:hover,.action-button[data-v-45a871d0]:focus{opacity:1}.action-button>span[data-v-45a871d0]{cursor:pointer;white-space:nowrap}.action-button__icon[data-v-45a871d0]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px;background-repeat:no-repeat}.action-button[data-v-45a871d0] .material-design-icon{width:44px;height:44px;opacity:1}.action-button[data-v-45a871d0] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-button p[data-v-45a871d0]{max-width:220px;line-height:1.6em;padding:10.8px 0;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis}.action-button__longtext[data-v-45a871d0]{cursor:pointer;white-space:pre-wrap}.action-button__title[data-v-45a871d0]{font-weight:bold;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/assets/action.scss\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAMF,mCACC,mBAAA,CACA,UCMiB,CDLjB,kFACC,cAAA,CACA,UCGgB,CDDjB,qCACC,oBAAA,CAOF,gCACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,kBCxBY,CDyBZ,qBAAA,CAEA,cAAA,CACA,kBAAA,CAEA,UCpBe,CDqBf,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,kCAAA,CACA,gBC/Ce,CDiDf,4EAEC,SChCY,CDmCb,qCACC,cAAA,CACA,kBAAA,CAGD,sCACC,UC5Dc,CD6Dd,WC7Dc,CD8Dd,SC3CY,CD4CZ,+BAAA,CACA,oBC5DS,CD6DT,2BAAA,CAGD,sDACC,UCrEc,CDsEd,WCtEc,CDuEd,SCpDY,CDsDZ,iFACC,qBAAA,CAKF,kCACC,eAAA,CACA,iBAAA,CAGA,gBAAA,CAEA,cAAA,CACA,eAAA,CAGA,eAAA,CACA,sBAAA,CAGD,0CACC,cAAA,CAEA,oBAAA,CAGD,uCACC,gBAAA,CACA,sBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,oBAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n * @author Marco Ambrosini <marcoambrosini@icloud.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n@mixin action-active {\\n\\tli {\\n\\t\\t&.active {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\tborder-radius: 6px;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n@mixin action--disabled {\\n\\t.action--disabled {\\n\\t\\tpointer-events: none;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t&:hover, &:focus {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t}\\n\\t\\t& * {\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n@mixin action-item($name) {\\n\\t.action-#{$name} {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\n\\t\\twidth: 100%;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t\\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\\n\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\n\\t\\topacity: $opacity_normal;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\tfont-weight: normal;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: $clickable-area;\\n\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\n\\t\\t& > span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t&__icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t}\\n\\n\\t\\t&::v-deep .material-design-icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\n\\t\\t\\t.material-design-icon__svg {\\n\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\tp {\\n\\t\\t\\tmax-width: 220px;\\n\\t\\t\\tline-height: 1.6em;\\n\\n\\t\\t\\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\\n\\t\\t\\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\\n\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\ttext-align: left;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__longtext {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t// allow the use of `\\\\n`\\n\\t\\t\\twhite-space: pre-wrap;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\"],sourceRoot:\"\"}]),n.Z=a;},3645:function(t){t.exports=function(t){var n=[];return n.toString=function(){return this.map((function(n){var e=\"\",o=void 0!==n[5];return n[4]&&(e+=\"@supports (\".concat(n[4],\") {\")),n[2]&&(e+=\"@media \".concat(n[2],\" {\")),o&&(e+=\"@layer\".concat(n[5].length>0?\" \".concat(n[5]):\"\",\" {\")),e+=t(n),o&&(e+=\"}\"),n[2]&&(e+=\"}\"),n[4]&&(e+=\"}\"),e})).join(\"\")},n.i=function(t,e,o,i,r){\"string\"==typeof t&&(t=[[null,t,void 0]]);var a={};if(o)for(var s=0;s<this.length;s++){var c=this[s][0];null!=c&&(a[c]=!0);}for(var l=0;l<t.length;l++){var u=[].concat(t[l]);o&&a[u[0]]||(void 0!==r&&(void 0===u[5]||(u[1]=\"@layer\".concat(u[5].length>0?\" \".concat(u[5]):\"\",\" {\").concat(u[1],\"}\")),u[5]=r),e&&(u[2]?(u[1]=\"@media \".concat(u[2],\" {\").concat(u[1],\"}\"),u[2]=e):u[2]=e),i&&(u[4]?(u[1]=\"@supports (\".concat(u[4],\") {\").concat(u[1],\"}\"),u[4]=i):u[4]=\"\".concat(i)),n.push(u));}},n};},7537:function(t){t.exports=function(t){var n=t[1],e=t[3];if(!e)return n;if(\"function\"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(e)))),i=\"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(o),r=\"/*# \".concat(i,\" */\"),a=e.sources.map((function(t){return \"/*# sourceURL=\".concat(e.sourceRoot||\"\").concat(t,\" */\")}));return [n].concat(a).concat([r]).join(\"\\n\")}return [n].join(\"\\n\")};},3379:function(t){var n=[];function e(t){for(var e=-1,o=0;o<n.length;o++)if(n[o].identifier===t){e=o;break}return e}function o(t,o){for(var r={},a=[],s=0;s<t.length;s++){var c=t[s],l=o.base?c[0]+o.base:c[0],u=r[l]||0,d=\"\".concat(l,\" \").concat(u);r[l]=u+1;var p=e(d),A={css:c[1],media:c[2],sourceMap:c[3],supports:c[4],layer:c[5]};if(-1!==p)n[p].references++,n[p].updater(A);else {var f=i(A,o);o.byIndex=s,n.splice(s,0,{identifier:d,updater:f,references:1});}a.push(d);}return a}function i(t,n){var e=n.domAPI(n);return e.update(t),function(n){if(n){if(n.css===t.css&&n.media===t.media&&n.sourceMap===t.sourceMap&&n.supports===t.supports&&n.layer===t.layer)return;e.update(t=n);}else e.remove();}}t.exports=function(t,i){var r=o(t=t||[],i=i||{});return function(t){t=t||[];for(var a=0;a<r.length;a++){var s=e(r[a]);n[s].references--;}for(var c=o(t,i),l=0;l<r.length;l++){var u=e(r[l]);0===n[u].references&&(n[u].updater(),n.splice(u,1));}r=c;}};},569:function(t){var n={};t.exports=function(t,e){var o=function(t){if(void 0===n[t]){var e=document.querySelector(t);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head;}catch(t){e=null;}n[t]=e;}return n[t]}(t);if(!o)throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");o.appendChild(e);};},9216:function(t){t.exports=function(t){var n=document.createElement(\"style\");return t.setAttributes(n,t.attributes),t.insert(n,t.options),n};},3565:function(t,n,e){t.exports=function(t){var n=e.nc;n&&t.setAttribute(\"nonce\",n);};},7795:function(t){t.exports=function(t){var n=t.insertStyleElement(t);return {update:function(e){!function(t,n,e){var o=\"\";e.supports&&(o+=\"@supports (\".concat(e.supports,\") {\")),e.media&&(o+=\"@media \".concat(e.media,\" {\"));var i=void 0!==e.layer;i&&(o+=\"@layer\".concat(e.layer.length>0?\" \".concat(e.layer):\"\",\" {\")),o+=e.css,i&&(o+=\"}\"),e.media&&(o+=\"}\"),e.supports&&(o+=\"}\");var r=e.sourceMap;r&&\"undefined\"!=typeof btoa&&(o+=\"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(r)))),\" */\")),n.styleTagTransform(o,t,n.options);}(n,t,e);},remove:function(){!function(t){if(null===t.parentNode)return !1;t.parentNode.removeChild(t);}(n);}}};},4589:function(t){t.exports=function(t,n){if(n.styleSheet)n.styleSheet.cssText=t;else {for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(t));}};},4216:function(){},1900:function(t,n,e){function o(t,n,e,o,i,r,a,s){var c,l=\"function\"==typeof t?t.options:t;if(n&&(l.render=n,l.staticRenderFns=e,l._compiled=!0),o&&(l.functional=!0),r&&(l._scopeId=\"data-v-\"+r),a?(c=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a);},l._ssrRegister=c):i&&(c=s?function(){i.call(this,(l.functional?this.parent:this).$root.$options.shadowRoot);}:i),c)if(l.functional){l._injectStyles=c;var u=l.render;l.render=function(t,n){return c.call(n),u(t,n)};}else {var d=l.beforeCreate;l.beforeCreate=d?[].concat(d,c):[c];}return {exports:t,options:l}}e.d(n,{Z:function(){return o}});},2734:function(t){t.exports=requireVue_runtime_common();}},n={};function e(o){var i=n[o];if(void 0!==i)return i.exports;var r=n[o]={id:o,exports:{}};return t[o](r,r.exports,e),r.exports}e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,{a:n}),n},e.d=function(t,n){for(var o in n)e.o(n,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:n[o]});},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0});},e.nc=void 0;var o={};return function(){e.r(o),e.d(o,{default:function(){return x}});var t={name:\"NcActionButton\",mixins:[e(1139).Z],props:{disabled:{type:Boolean,default:!1}},computed:{isFocusable:function(){return !this.disabled}}},n=e(3379),i=e.n(n),r=e(7795),a=e.n(r),s=e(569),c=e.n(s),l=e(3565),u=e.n(l),d=e(9216),p=e.n(d),A=e(4589),f=e.n(A),h=e(5698),C={};C.styleTagTransform=f(),C.setAttributes=u(),C.insert=c().bind(null,\"head\"),C.domAPI=a(),C.insertStyleElement=p(),i()(h.Z,C),h.Z&&h.Z.locals&&h.Z.locals;var v=e(1900),b=e(4216),m=e.n(b),g=(0, v.Z)(t,(function(){var t=this,n=t._self._c;return n(\"li\",{staticClass:\"action\",class:{\"action--disabled\":t.disabled},attrs:{role:\"presentation\"}},[n(\"button\",{staticClass:\"action-button\",class:{focusable:t.isFocusable},attrs:{\"aria-label\":t.ariaLabel,role:\"menuitem\",type:\"button\"},on:{click:t.onClick}},[t._t(\"icon\",(function(){return [n(\"span\",{staticClass:\"action-button__icon\",class:[t.isIconUrl?\"action-button__icon--url\":t.icon],style:{backgroundImage:t.isIconUrl?\"url(\".concat(t.icon,\")\"):null}})]})),t._v(\" \"),t.title?n(\"p\",[n(\"strong\",{staticClass:\"action-button__title\"},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.title)+\"\\n\\t\\t\\t\")]),t._v(\" \"),n(\"br\"),t._v(\" \"),n(\"span\",{staticClass:\"action-button__longtext\",domProps:{textContent:t._s(t.text)}})]):t.isLongText?n(\"p\",{staticClass:\"action-button__longtext\",domProps:{textContent:t._s(t.text)}}):n(\"span\",{staticClass:\"action-button__text\"},[t._v(t._s(t.text))]),t._v(\" \"),t._e()],2)])}),[],!1,null,\"45a871d0\",null);\"function\"==typeof m()&&m()(g);var x=g.exports;}(),o}()}));\n\t\n} (NcActionButton$1));\n\nvar NcActionButton = /*@__PURE__*/getDefaultExportFromCjs(NcActionButton$1.exports);\n\nvar NcActions$1 = {exports: {}};\n\nvar gettext$1 = {};\n\nvar es_regexp_exec = {};\n\nvar global$1;\nvar hasRequiredGlobal;\n\nfunction requireGlobal () {\n\tif (hasRequiredGlobal) return global$1;\n\thasRequiredGlobal = 1;\n\tvar check = function (it) {\n\t return it && it.Math == Math && it;\n\t};\n\n\t// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n\tglobal$1 =\n\t // eslint-disable-next-line es-x/no-global-this -- safe\n\t check(typeof globalThis == 'object' && globalThis) ||\n\t check(typeof window == 'object' && window) ||\n\t // eslint-disable-next-line no-restricted-globals -- safe\n\t check(typeof self == 'object' && self) ||\n\t check(typeof commonjsGlobal == 'object' && commonjsGlobal) ||\n\t // eslint-disable-next-line no-new-func -- fallback\n\t (function () { return this; })() || Function('return this')();\n\treturn global$1;\n}\n\nvar objectGetOwnPropertyDescriptor = {};\n\nvar fails;\nvar hasRequiredFails;\n\nfunction requireFails () {\n\tif (hasRequiredFails) return fails;\n\thasRequiredFails = 1;\n\tfails = function (exec) {\n\t try {\n\t return !!exec();\n\t } catch (error) {\n\t return true;\n\t }\n\t};\n\treturn fails;\n}\n\nvar descriptors;\nvar hasRequiredDescriptors;\n\nfunction requireDescriptors () {\n\tif (hasRequiredDescriptors) return descriptors;\n\thasRequiredDescriptors = 1;\n\tvar fails = requireFails();\n\n\t// Detect IE8's incomplete defineProperty implementation\n\tdescriptors = !fails(function () {\n\t // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n\t return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n\t});\n\treturn descriptors;\n}\n\nvar functionBindNative;\nvar hasRequiredFunctionBindNative;\n\nfunction requireFunctionBindNative () {\n\tif (hasRequiredFunctionBindNative) return functionBindNative;\n\thasRequiredFunctionBindNative = 1;\n\tvar fails = requireFails();\n\n\tfunctionBindNative = !fails(function () {\n\t // eslint-disable-next-line es-x/no-function-prototype-bind -- safe\n\t var test = (function () { /* empty */ }).bind();\n\t // eslint-disable-next-line no-prototype-builtins -- safe\n\t return typeof test != 'function' || test.hasOwnProperty('prototype');\n\t});\n\treturn functionBindNative;\n}\n\nvar functionCall;\nvar hasRequiredFunctionCall;\n\nfunction requireFunctionCall () {\n\tif (hasRequiredFunctionCall) return functionCall;\n\thasRequiredFunctionCall = 1;\n\tvar NATIVE_BIND = requireFunctionBindNative();\n\n\tvar call = Function.prototype.call;\n\n\tfunctionCall = NATIVE_BIND ? call.bind(call) : function () {\n\t return call.apply(call, arguments);\n\t};\n\treturn functionCall;\n}\n\nvar objectPropertyIsEnumerable = {};\n\nvar hasRequiredObjectPropertyIsEnumerable;\n\nfunction requireObjectPropertyIsEnumerable () {\n\tif (hasRequiredObjectPropertyIsEnumerable) return objectPropertyIsEnumerable;\n\thasRequiredObjectPropertyIsEnumerable = 1;\n\tvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n\t// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n\tvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n\t// Nashorn ~ JDK8 bug\n\tvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n\t// `Object.prototype.propertyIsEnumerable` method implementation\n\t// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\n\tobjectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n\t var descriptor = getOwnPropertyDescriptor(this, V);\n\t return !!descriptor && descriptor.enumerable;\n\t} : $propertyIsEnumerable;\n\treturn objectPropertyIsEnumerable;\n}\n\nvar createPropertyDescriptor;\nvar hasRequiredCreatePropertyDescriptor;\n\nfunction requireCreatePropertyDescriptor () {\n\tif (hasRequiredCreatePropertyDescriptor) return createPropertyDescriptor;\n\thasRequiredCreatePropertyDescriptor = 1;\n\tcreatePropertyDescriptor = function (bitmap, value) {\n\t return {\n\t enumerable: !(bitmap & 1),\n\t configurable: !(bitmap & 2),\n\t writable: !(bitmap & 4),\n\t value: value\n\t };\n\t};\n\treturn createPropertyDescriptor;\n}\n\nvar functionUncurryThis;\nvar hasRequiredFunctionUncurryThis;\n\nfunction requireFunctionUncurryThis () {\n\tif (hasRequiredFunctionUncurryThis) return functionUncurryThis;\n\thasRequiredFunctionUncurryThis = 1;\n\tvar NATIVE_BIND = requireFunctionBindNative();\n\n\tvar FunctionPrototype = Function.prototype;\n\tvar bind = FunctionPrototype.bind;\n\tvar call = FunctionPrototype.call;\n\tvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\n\tfunctionUncurryThis = NATIVE_BIND ? function (fn) {\n\t return fn && uncurryThis(fn);\n\t} : function (fn) {\n\t return fn && function () {\n\t return call.apply(fn, arguments);\n\t };\n\t};\n\treturn functionUncurryThis;\n}\n\nvar classofRaw;\nvar hasRequiredClassofRaw;\n\nfunction requireClassofRaw () {\n\tif (hasRequiredClassofRaw) return classofRaw;\n\thasRequiredClassofRaw = 1;\n\tvar uncurryThis = requireFunctionUncurryThis();\n\n\tvar toString = uncurryThis({}.toString);\n\tvar stringSlice = uncurryThis(''.slice);\n\n\tclassofRaw = function (it) {\n\t return stringSlice(toString(it), 8, -1);\n\t};\n\treturn classofRaw;\n}\n\nvar indexedObject;\nvar hasRequiredIndexedObject;\n\nfunction requireIndexedObject () {\n\tif (hasRequiredIndexedObject) return indexedObject;\n\thasRequiredIndexedObject = 1;\n\tvar uncurryThis = requireFunctionUncurryThis();\n\tvar fails = requireFails();\n\tvar classof = requireClassofRaw();\n\n\tvar $Object = Object;\n\tvar split = uncurryThis(''.split);\n\n\t// fallback for non-array-like ES3 and non-enumerable old V8 strings\n\tindexedObject = fails(function () {\n\t // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n\t // eslint-disable-next-line no-prototype-builtins -- safe\n\t return !$Object('z').propertyIsEnumerable(0);\n\t}) ? function (it) {\n\t return classof(it) == 'String' ? split(it, '') : $Object(it);\n\t} : $Object;\n\treturn indexedObject;\n}\n\nvar isNullOrUndefined;\nvar hasRequiredIsNullOrUndefined;\n\nfunction requireIsNullOrUndefined () {\n\tif (hasRequiredIsNullOrUndefined) return isNullOrUndefined;\n\thasRequiredIsNullOrUndefined = 1;\n\t// we can't use just `it == null` since of `document.all` special case\n\t// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\n\tisNullOrUndefined = function (it) {\n\t return it === null || it === undefined;\n\t};\n\treturn isNullOrUndefined;\n}\n\nvar requireObjectCoercible;\nvar hasRequiredRequireObjectCoercible;\n\nfunction requireRequireObjectCoercible () {\n\tif (hasRequiredRequireObjectCoercible) return requireObjectCoercible;\n\thasRequiredRequireObjectCoercible = 1;\n\tvar isNullOrUndefined = requireIsNullOrUndefined();\n\n\tvar $TypeError = TypeError;\n\n\t// `RequireObjectCoercible` abstract operation\n\t// https://tc39.es/ecma262/#sec-requireobjectcoercible\n\trequireObjectCoercible = function (it) {\n\t if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n\t return it;\n\t};\n\treturn requireObjectCoercible;\n}\n\nvar toIndexedObject;\nvar hasRequiredToIndexedObject;\n\nfunction requireToIndexedObject () {\n\tif (hasRequiredToIndexedObject) return toIndexedObject;\n\thasRequiredToIndexedObject = 1;\n\t// toObject with fallback for non-array-like ES3 strings\n\tvar IndexedObject = requireIndexedObject();\n\tvar requireObjectCoercible = requireRequireObjectCoercible();\n\n\ttoIndexedObject = function (it) {\n\t return IndexedObject(requireObjectCoercible(it));\n\t};\n\treturn toIndexedObject;\n}\n\nvar isCallable;\nvar hasRequiredIsCallable;\n\nfunction requireIsCallable () {\n\tif (hasRequiredIsCallable) return isCallable;\n\thasRequiredIsCallable = 1;\n\t// `IsCallable` abstract operation\n\t// https://tc39.es/ecma262/#sec-iscallable\n\tisCallable = function (argument) {\n\t return typeof argument == 'function';\n\t};\n\treturn isCallable;\n}\n\nvar isObject$1;\nvar hasRequiredIsObject;\n\nfunction requireIsObject () {\n\tif (hasRequiredIsObject) return isObject$1;\n\thasRequiredIsObject = 1;\n\tvar isCallable = requireIsCallable();\n\n\tvar documentAll = typeof document == 'object' && document.all;\n\n\t// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n\tvar SPECIAL_DOCUMENT_ALL = typeof documentAll == 'undefined' && documentAll !== undefined;\n\n\tisObject$1 = SPECIAL_DOCUMENT_ALL ? function (it) {\n\t return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n\t} : function (it) {\n\t return typeof it == 'object' ? it !== null : isCallable(it);\n\t};\n\treturn isObject$1;\n}\n\nvar getBuiltIn;\nvar hasRequiredGetBuiltIn;\n\nfunction requireGetBuiltIn () {\n\tif (hasRequiredGetBuiltIn) return getBuiltIn;\n\thasRequiredGetBuiltIn = 1;\n\tvar global = requireGlobal();\n\tvar isCallable = requireIsCallable();\n\n\tvar aFunction = function (argument) {\n\t return isCallable(argument) ? argument : undefined;\n\t};\n\n\tgetBuiltIn = function (namespace, method) {\n\t return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n\t};\n\treturn getBuiltIn;\n}\n\nvar objectIsPrototypeOf;\nvar hasRequiredObjectIsPrototypeOf;\n\nfunction requireObjectIsPrototypeOf () {\n\tif (hasRequiredObjectIsPrototypeOf) return objectIsPrototypeOf;\n\thasRequiredObjectIsPrototypeOf = 1;\n\tvar uncurryThis = requireFunctionUncurryThis();\n\n\tobjectIsPrototypeOf = uncurryThis({}.isPrototypeOf);\n\treturn objectIsPrototypeOf;\n}\n\nvar engineUserAgent;\nvar hasRequiredEngineUserAgent;\n\nfunction requireEngineUserAgent () {\n\tif (hasRequiredEngineUserAgent) return engineUserAgent;\n\thasRequiredEngineUserAgent = 1;\n\tvar getBuiltIn = requireGetBuiltIn();\n\n\tengineUserAgent = getBuiltIn('navigator', 'userAgent') || '';\n\treturn engineUserAgent;\n}\n\nvar engineV8Version;\nvar hasRequiredEngineV8Version;\n\nfunction requireEngineV8Version () {\n\tif (hasRequiredEngineV8Version) return engineV8Version;\n\thasRequiredEngineV8Version = 1;\n\tvar global = requireGlobal();\n\tvar userAgent = requireEngineUserAgent();\n\n\tvar process = global.process;\n\tvar Deno = global.Deno;\n\tvar versions = process && process.versions || Deno && Deno.version;\n\tvar v8 = versions && versions.v8;\n\tvar match, version;\n\n\tif (v8) {\n\t match = v8.split('.');\n\t // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n\t // but their correct versions are not interesting for us\n\t version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n\t}\n\n\t// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n\t// so check `userAgent` even if `.v8` exists, but 0\n\tif (!version && userAgent) {\n\t match = userAgent.match(/Edge\\/(\\d+)/);\n\t if (!match || match[1] >= 74) {\n\t match = userAgent.match(/Chrome\\/(\\d+)/);\n\t if (match) version = +match[1];\n\t }\n\t}\n\n\tengineV8Version = version;\n\treturn engineV8Version;\n}\n\nvar symbolConstructorDetection;\nvar hasRequiredSymbolConstructorDetection;\n\nfunction requireSymbolConstructorDetection () {\n\tif (hasRequiredSymbolConstructorDetection) return symbolConstructorDetection;\n\thasRequiredSymbolConstructorDetection = 1;\n\tvar V8_VERSION = requireEngineV8Version();\n\tvar fails = requireFails();\n\n\t// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing\n\tsymbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails(function () {\n\t var symbol = Symbol();\n\t // Chrome 38 Symbol has incorrect toString conversion\n\t // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n\t return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n\t // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n\t !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n\t});\n\treturn symbolConstructorDetection;\n}\n\nvar useSymbolAsUid;\nvar hasRequiredUseSymbolAsUid;\n\nfunction requireUseSymbolAsUid () {\n\tif (hasRequiredUseSymbolAsUid) return useSymbolAsUid;\n\thasRequiredUseSymbolAsUid = 1;\n\tvar NATIVE_SYMBOL = requireSymbolConstructorDetection();\n\n\tuseSymbolAsUid = NATIVE_SYMBOL\n\t && !Symbol.sham\n\t && typeof Symbol.iterator == 'symbol';\n\treturn useSymbolAsUid;\n}\n\nvar isSymbol;\nvar hasRequiredIsSymbol;\n\nfunction requireIsSymbol () {\n\tif (hasRequiredIsSymbol) return isSymbol;\n\thasRequiredIsSymbol = 1;\n\tvar getBuiltIn = requireGetBuiltIn();\n\tvar isCallable = requireIsCallable();\n\tvar isPrototypeOf = requireObjectIsPrototypeOf();\n\tvar USE_SYMBOL_AS_UID = requireUseSymbolAsUid();\n\n\tvar $Object = Object;\n\n\tisSymbol = USE_SYMBOL_AS_UID ? function (it) {\n\t return typeof it == 'symbol';\n\t} : function (it) {\n\t var $Symbol = getBuiltIn('Symbol');\n\t return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n\t};\n\treturn isSymbol;\n}\n\nvar tryToString;\nvar hasRequiredTryToString;\n\nfunction requireTryToString () {\n\tif (hasRequiredTryToString) return tryToString;\n\thasRequiredTryToString = 1;\n\tvar $String = String;\n\n\ttryToString = function (argument) {\n\t try {\n\t return $String(argument);\n\t } catch (error) {\n\t return 'Object';\n\t }\n\t};\n\treturn tryToString;\n}\n\nvar aCallable;\nvar hasRequiredACallable;\n\nfunction requireACallable () {\n\tif (hasRequiredACallable) return aCallable;\n\thasRequiredACallable = 1;\n\tvar isCallable = requireIsCallable();\n\tvar tryToString = requireTryToString();\n\n\tvar $TypeError = TypeError;\n\n\t// `Assert: IsCallable(argument) is true`\n\taCallable = function (argument) {\n\t if (isCallable(argument)) return argument;\n\t throw $TypeError(tryToString(argument) + ' is not a function');\n\t};\n\treturn aCallable;\n}\n\nvar getMethod;\nvar hasRequiredGetMethod;\n\nfunction requireGetMethod () {\n\tif (hasRequiredGetMethod) return getMethod;\n\thasRequiredGetMethod = 1;\n\tvar aCallable = requireACallable();\n\tvar isNullOrUndefined = requireIsNullOrUndefined();\n\n\t// `GetMethod` abstract operation\n\t// https://tc39.es/ecma262/#sec-getmethod\n\tgetMethod = function (V, P) {\n\t var func = V[P];\n\t return isNullOrUndefined(func) ? undefined : aCallable(func);\n\t};\n\treturn getMethod;\n}\n\nvar ordinaryToPrimitive;\nvar hasRequiredOrdinaryToPrimitive;\n\nfunction requireOrdinaryToPrimitive () {\n\tif (hasRequiredOrdinaryToPrimitive) return ordinaryToPrimitive;\n\thasRequiredOrdinaryToPrimitive = 1;\n\tvar call = requireFunctionCall();\n\tvar isCallable = requireIsCallable();\n\tvar isObject = requireIsObject();\n\n\tvar $TypeError = TypeError;\n\n\t// `OrdinaryToPrimitive` abstract operation\n\t// https://tc39.es/ecma262/#sec-ordinarytoprimitive\n\tordinaryToPrimitive = function (input, pref) {\n\t var fn, val;\n\t if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n\t if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n\t if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n\t throw $TypeError(\"Can't convert object to primitive value\");\n\t};\n\treturn ordinaryToPrimitive;\n}\n\nvar shared = {exports: {}};\n\nvar isPure;\nvar hasRequiredIsPure;\n\nfunction requireIsPure () {\n\tif (hasRequiredIsPure) return isPure;\n\thasRequiredIsPure = 1;\n\tisPure = false;\n\treturn isPure;\n}\n\nvar defineGlobalProperty;\nvar hasRequiredDefineGlobalProperty;\n\nfunction requireDefineGlobalProperty () {\n\tif (hasRequiredDefineGlobalProperty) return defineGlobalProperty;\n\thasRequiredDefineGlobalProperty = 1;\n\tvar global = requireGlobal();\n\n\t// eslint-disable-next-line es-x/no-object-defineproperty -- safe\n\tvar defineProperty = Object.defineProperty;\n\n\tdefineGlobalProperty = function (key, value) {\n\t try {\n\t defineProperty(global, key, { value: value, configurable: true, writable: true });\n\t } catch (error) {\n\t global[key] = value;\n\t } return value;\n\t};\n\treturn defineGlobalProperty;\n}\n\nvar sharedStore;\nvar hasRequiredSharedStore;\n\nfunction requireSharedStore () {\n\tif (hasRequiredSharedStore) return sharedStore;\n\thasRequiredSharedStore = 1;\n\tvar global = requireGlobal();\n\tvar defineGlobalProperty = requireDefineGlobalProperty();\n\n\tvar SHARED = '__core-js_shared__';\n\tvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\n\tsharedStore = store;\n\treturn sharedStore;\n}\n\nvar hasRequiredShared;\n\nfunction requireShared () {\n\tif (hasRequiredShared) return shared.exports;\n\thasRequiredShared = 1;\n\tvar IS_PURE = requireIsPure();\n\tvar store = requireSharedStore();\n\n\t(shared.exports = function (key, value) {\n\t return store[key] || (store[key] = value !== undefined ? value : {});\n\t})('versions', []).push({\n\t version: '3.25.1',\n\t mode: IS_PURE ? 'pure' : 'global',\n\t copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n\t license: 'https://github.com/zloirock/core-js/blob/v3.25.1/LICENSE',\n\t source: 'https://github.com/zloirock/core-js'\n\t});\n\treturn shared.exports;\n}\n\nvar toObject$1;\nvar hasRequiredToObject;\n\nfunction requireToObject () {\n\tif (hasRequiredToObject) return toObject$1;\n\thasRequiredToObject = 1;\n\tvar requireObjectCoercible = requireRequireObjectCoercible();\n\n\tvar $Object = Object;\n\n\t// `ToObject` abstract operation\n\t// https://tc39.es/ecma262/#sec-toobject\n\ttoObject$1 = function (argument) {\n\t return $Object(requireObjectCoercible(argument));\n\t};\n\treturn toObject$1;\n}\n\nvar hasOwnProperty_1;\nvar hasRequiredHasOwnProperty;\n\nfunction requireHasOwnProperty () {\n\tif (hasRequiredHasOwnProperty) return hasOwnProperty_1;\n\thasRequiredHasOwnProperty = 1;\n\tvar uncurryThis = requireFunctionUncurryThis();\n\tvar toObject = requireToObject();\n\n\tvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n\t// `HasOwnProperty` abstract operation\n\t// https://tc39.es/ecma262/#sec-hasownproperty\n\t// eslint-disable-next-line es-x/no-object-hasown -- safe\n\thasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) {\n\t return hasOwnProperty(toObject(it), key);\n\t};\n\treturn hasOwnProperty_1;\n}\n\nvar uid$3;\nvar hasRequiredUid;\n\nfunction requireUid () {\n\tif (hasRequiredUid) return uid$3;\n\thasRequiredUid = 1;\n\tvar uncurryThis = requireFunctionUncurryThis();\n\n\tvar id = 0;\n\tvar postfix = Math.random();\n\tvar toString = uncurryThis(1.0.toString);\n\n\tuid$3 = function (key) {\n\t return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n\t};\n\treturn uid$3;\n}\n\nvar wellKnownSymbol;\nvar hasRequiredWellKnownSymbol;\n\nfunction requireWellKnownSymbol () {\n\tif (hasRequiredWellKnownSymbol) return wellKnownSymbol;\n\thasRequiredWellKnownSymbol = 1;\n\tvar global = requireGlobal();\n\tvar shared = requireShared();\n\tvar hasOwn = requireHasOwnProperty();\n\tvar uid = requireUid();\n\tvar NATIVE_SYMBOL = requireSymbolConstructorDetection();\n\tvar USE_SYMBOL_AS_UID = requireUseSymbolAsUid();\n\n\tvar WellKnownSymbolsStore = shared('wks');\n\tvar Symbol = global.Symbol;\n\tvar symbolFor = Symbol && Symbol['for'];\n\tvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\n\twellKnownSymbol = function (name) {\n\t if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n\t var description = 'Symbol.' + name;\n\t if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n\t WellKnownSymbolsStore[name] = Symbol[name];\n\t } else if (USE_SYMBOL_AS_UID && symbolFor) {\n\t WellKnownSymbolsStore[name] = symbolFor(description);\n\t } else {\n\t WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n\t }\n\t } return WellKnownSymbolsStore[name];\n\t};\n\treturn wellKnownSymbol;\n}\n\nvar toPrimitive;\nvar hasRequiredToPrimitive;\n\nfunction requireToPrimitive () {\n\tif (hasRequiredToPrimitive) return toPrimitive;\n\thasRequiredToPrimitive = 1;\n\tvar call = requireFunctionCall();\n\tvar isObject = requireIsObject();\n\tvar isSymbol = requireIsSymbol();\n\tvar getMethod = requireGetMethod();\n\tvar ordinaryToPrimitive = requireOrdinaryToPrimitive();\n\tvar wellKnownSymbol = requireWellKnownSymbol();\n\n\tvar $TypeError = TypeError;\n\tvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n\t// `ToPrimitive` abstract operation\n\t// https://tc39.es/ecma262/#sec-toprimitive\n\ttoPrimitive = function (input, pref) {\n\t if (!isObject(input) || isSymbol(input)) return input;\n\t var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n\t var result;\n\t if (exoticToPrim) {\n\t if (pref === undefined) pref = 'default';\n\t result = call(exoticToPrim, input, pref);\n\t if (!isObject(result) || isSymbol(result)) return result;\n\t throw $TypeError(\"Can't convert object to primitive value\");\n\t }\n\t if (pref === undefined) pref = 'number';\n\t return ordinaryToPrimitive(input, pref);\n\t};\n\treturn toPrimitive;\n}\n\nvar toPropertyKey;\nvar hasRequiredToPropertyKey;\n\nfunction requireToPropertyKey () {\n\tif (hasRequiredToPropertyKey) return toPropertyKey;\n\thasRequiredToPropertyKey = 1;\n\tvar toPrimitive = requireToPrimitive();\n\tvar isSymbol = requireIsSymbol();\n\n\t// `ToPropertyKey` abstract operation\n\t// https://tc39.es/ecma262/#sec-topropertykey\n\ttoPropertyKey = function (argument) {\n\t var key = toPrimitive(argument, 'string');\n\t return isSymbol(key) ? key : key + '';\n\t};\n\treturn toPropertyKey;\n}\n\nvar documentCreateElement;\nvar hasRequiredDocumentCreateElement;\n\nfunction requireDocumentCreateElement () {\n\tif (hasRequiredDocumentCreateElement) return documentCreateElement;\n\thasRequiredDocumentCreateElement = 1;\n\tvar global = requireGlobal();\n\tvar isObject = requireIsObject();\n\n\tvar document = global.document;\n\t// typeof document.createElement is 'object' in old IE\n\tvar EXISTS = isObject(document) && isObject(document.createElement);\n\n\tdocumentCreateElement = function (it) {\n\t return EXISTS ? document.createElement(it) : {};\n\t};\n\treturn documentCreateElement;\n}\n\nvar ie8DomDefine;\nvar hasRequiredIe8DomDefine;\n\nfunction requireIe8DomDefine () {\n\tif (hasRequiredIe8DomDefine) return ie8DomDefine;\n\thasRequiredIe8DomDefine = 1;\n\tvar DESCRIPTORS = requireDescriptors();\n\tvar fails = requireFails();\n\tvar createElement = requireDocumentCreateElement();\n\n\t// Thanks to IE8 for its funny defineProperty\n\tie8DomDefine = !DESCRIPTORS && !fails(function () {\n\t // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n\t return Object.defineProperty(createElement('div'), 'a', {\n\t get: function () { return 7; }\n\t }).a != 7;\n\t});\n\treturn ie8DomDefine;\n}\n\nvar hasRequiredObjectGetOwnPropertyDescriptor;\n\nfunction requireObjectGetOwnPropertyDescriptor () {\n\tif (hasRequiredObjectGetOwnPropertyDescriptor) return objectGetOwnPropertyDescriptor;\n\thasRequiredObjectGetOwnPropertyDescriptor = 1;\n\tvar DESCRIPTORS = requireDescriptors();\n\tvar call = requireFunctionCall();\n\tvar propertyIsEnumerableModule = requireObjectPropertyIsEnumerable();\n\tvar createPropertyDescriptor = requireCreatePropertyDescriptor();\n\tvar toIndexedObject = requireToIndexedObject();\n\tvar toPropertyKey = requireToPropertyKey();\n\tvar hasOwn = requireHasOwnProperty();\n\tvar IE8_DOM_DEFINE = requireIe8DomDefine();\n\n\t// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n\tvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n\t// `Object.getOwnPropertyDescriptor` method\n\t// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n\tobjectGetOwnPropertyDescriptor.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n\t O = toIndexedObject(O);\n\t P = toPropertyKey(P);\n\t if (IE8_DOM_DEFINE) try {\n\t return $getOwnPropertyDescriptor(O, P);\n\t } catch (error) { /* empty */ }\n\t if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n\t};\n\treturn objectGetOwnPropertyDescriptor;\n}\n\nvar objectDefineProperty = {};\n\nvar v8PrototypeDefineBug;\nvar hasRequiredV8PrototypeDefineBug;\n\nfunction requireV8PrototypeDefineBug () {\n\tif (hasRequiredV8PrototypeDefineBug) return v8PrototypeDefineBug;\n\thasRequiredV8PrototypeDefineBug = 1;\n\tvar DESCRIPTORS = requireDescriptors();\n\tvar fails = requireFails();\n\n\t// V8 ~ Chrome 36-\n\t// https://bugs.chromium.org/p/v8/issues/detail?id=3334\n\tv8PrototypeDefineBug = DESCRIPTORS && fails(function () {\n\t // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n\t return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n\t value: 42,\n\t writable: false\n\t }).prototype != 42;\n\t});\n\treturn v8PrototypeDefineBug;\n}\n\nvar anObject;\nvar hasRequiredAnObject;\n\nfunction requireAnObject () {\n\tif (hasRequiredAnObject) return anObject;\n\thasRequiredAnObject = 1;\n\tvar isObject = requireIsObject();\n\n\tvar $String = String;\n\tvar $TypeError = TypeError;\n\n\t// `Assert: Type(argument) is Object`\n\tanObject = function (argument) {\n\t if (isObject(argument)) return argument;\n\t throw $TypeError($String(argument) + ' is not an object');\n\t};\n\treturn anObject;\n}\n\nvar hasRequiredObjectDefineProperty;\n\nfunction requireObjectDefineProperty () {\n\tif (hasRequiredObjectDefineProperty) return objectDefineProperty;\n\thasRequiredObjectDefineProperty = 1;\n\tvar DESCRIPTORS = requireDescriptors();\n\tvar IE8_DOM_DEFINE = requireIe8DomDefine();\n\tvar V8_PROTOTYPE_DEFINE_BUG = requireV8PrototypeDefineBug();\n\tvar anObject = requireAnObject();\n\tvar toPropertyKey = requireToPropertyKey();\n\n\tvar $TypeError = TypeError;\n\t// eslint-disable-next-line es-x/no-object-defineproperty -- safe\n\tvar $defineProperty = Object.defineProperty;\n\t// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n\tvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\tvar ENUMERABLE = 'enumerable';\n\tvar CONFIGURABLE = 'configurable';\n\tvar WRITABLE = 'writable';\n\n\t// `Object.defineProperty` method\n\t// https://tc39.es/ecma262/#sec-object.defineproperty\n\tobjectDefineProperty.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n\t anObject(O);\n\t P = toPropertyKey(P);\n\t anObject(Attributes);\n\t if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n\t var current = $getOwnPropertyDescriptor(O, P);\n\t if (current && current[WRITABLE]) {\n\t O[P] = Attributes.value;\n\t Attributes = {\n\t configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n\t enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n\t writable: false\n\t };\n\t }\n\t } return $defineProperty(O, P, Attributes);\n\t} : $defineProperty : function defineProperty(O, P, Attributes) {\n\t anObject(O);\n\t P = toPropertyKey(P);\n\t anObject(Attributes);\n\t if (IE8_DOM_DEFINE) try {\n\t return $defineProperty(O, P, Attributes);\n\t } catch (error) { /* empty */ }\n\t if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n\t if ('value' in Attributes) O[P] = Attributes.value;\n\t return O;\n\t};\n\treturn objectDefineProperty;\n}\n\nvar createNonEnumerableProperty;\nvar hasRequiredCreateNonEnumerableProperty;\n\nfunction requireCreateNonEnumerableProperty () {\n\tif (hasRequiredCreateNonEnumerableProperty) return createNonEnumerableProperty;\n\thasRequiredCreateNonEnumerableProperty = 1;\n\tvar DESCRIPTORS = requireDescriptors();\n\tvar definePropertyModule = requireObjectDefineProperty();\n\tvar createPropertyDescriptor = requireCreatePropertyDescriptor();\n\n\tcreateNonEnumerableProperty = DESCRIPTORS ? function (object, key, value) {\n\t return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n\t} : function (object, key, value) {\n\t object[key] = value;\n\t return object;\n\t};\n\treturn createNonEnumerableProperty;\n}\n\nvar makeBuiltIn = {exports: {}};\n\nvar functionName;\nvar hasRequiredFunctionName;\n\nfunction requireFunctionName () {\n\tif (hasRequiredFunctionName) return functionName;\n\thasRequiredFunctionName = 1;\n\tvar DESCRIPTORS = requireDescriptors();\n\tvar hasOwn = requireHasOwnProperty();\n\n\tvar FunctionPrototype = Function.prototype;\n\t// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n\tvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\n\tvar EXISTS = hasOwn(FunctionPrototype, 'name');\n\t// additional protection from minified / mangled / dropped function names\n\tvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\n\tvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\n\tfunctionName = {\n\t EXISTS: EXISTS,\n\t PROPER: PROPER,\n\t CONFIGURABLE: CONFIGURABLE\n\t};\n\treturn functionName;\n}\n\nvar inspectSource;\nvar hasRequiredInspectSource;\n\nfunction requireInspectSource () {\n\tif (hasRequiredInspectSource) return inspectSource;\n\thasRequiredInspectSource = 1;\n\tvar uncurryThis = requireFunctionUncurryThis();\n\tvar isCallable = requireIsCallable();\n\tvar store = requireSharedStore();\n\n\tvar functionToString = uncurryThis(Function.toString);\n\n\t// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\n\tif (!isCallable(store.inspectSource)) {\n\t store.inspectSource = function (it) {\n\t return functionToString(it);\n\t };\n\t}\n\n\tinspectSource = store.inspectSource;\n\treturn inspectSource;\n}\n\nvar weakMapBasicDetection;\nvar hasRequiredWeakMapBasicDetection;\n\nfunction requireWeakMapBasicDetection () {\n\tif (hasRequiredWeakMapBasicDetection) return weakMapBasicDetection;\n\thasRequiredWeakMapBasicDetection = 1;\n\tvar global = requireGlobal();\n\tvar isCallable = requireIsCallable();\n\n\tvar WeakMap = global.WeakMap;\n\n\tweakMapBasicDetection = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n\treturn weakMapBasicDetection;\n}\n\nvar sharedKey;\nvar hasRequiredSharedKey;\n\nfunction requireSharedKey () {\n\tif (hasRequiredSharedKey) return sharedKey;\n\thasRequiredSharedKey = 1;\n\tvar shared = requireShared();\n\tvar uid = requireUid();\n\n\tvar keys = shared('keys');\n\n\tsharedKey = function (key) {\n\t return keys[key] || (keys[key] = uid(key));\n\t};\n\treturn sharedKey;\n}\n\nvar hiddenKeys;\nvar hasRequiredHiddenKeys;\n\nfunction requireHiddenKeys () {\n\tif (hasRequiredHiddenKeys) return hiddenKeys;\n\thasRequiredHiddenKeys = 1;\n\thiddenKeys = {};\n\treturn hiddenKeys;\n}\n\nvar internalState;\nvar hasRequiredInternalState;\n\nfunction requireInternalState () {\n\tif (hasRequiredInternalState) return internalState;\n\thasRequiredInternalState = 1;\n\tvar NATIVE_WEAK_MAP = requireWeakMapBasicDetection();\n\tvar global = requireGlobal();\n\tvar uncurryThis = requireFunctionUncurryThis();\n\tvar isObject = requireIsObject();\n\tvar createNonEnumerableProperty = requireCreateNonEnumerableProperty();\n\tvar hasOwn = requireHasOwnProperty();\n\tvar shared = requireSharedStore();\n\tvar sharedKey = requireSharedKey();\n\tvar hiddenKeys = requireHiddenKeys();\n\n\tvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\n\tvar TypeError = global.TypeError;\n\tvar WeakMap = global.WeakMap;\n\tvar set, get, has;\n\n\tvar enforce = function (it) {\n\t return has(it) ? get(it) : set(it, {});\n\t};\n\n\tvar getterFor = function (TYPE) {\n\t return function (it) {\n\t var state;\n\t if (!isObject(it) || (state = get(it)).type !== TYPE) {\n\t throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n\t } return state;\n\t };\n\t};\n\n\tif (NATIVE_WEAK_MAP || shared.state) {\n\t var store = shared.state || (shared.state = new WeakMap());\n\t var wmget = uncurryThis(store.get);\n\t var wmhas = uncurryThis(store.has);\n\t var wmset = uncurryThis(store.set);\n\t set = function (it, metadata) {\n\t if (wmhas(store, it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n\t metadata.facade = it;\n\t wmset(store, it, metadata);\n\t return metadata;\n\t };\n\t get = function (it) {\n\t return wmget(store, it) || {};\n\t };\n\t has = function (it) {\n\t return wmhas(store, it);\n\t };\n\t} else {\n\t var STATE = sharedKey('state');\n\t hiddenKeys[STATE] = true;\n\t set = function (it, metadata) {\n\t if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n\t metadata.facade = it;\n\t createNonEnumerableProperty(it, STATE, metadata);\n\t return metadata;\n\t };\n\t get = function (it) {\n\t return hasOwn(it, STATE) ? it[STATE] : {};\n\t };\n\t has = function (it) {\n\t return hasOwn(it, STATE);\n\t };\n\t}\n\n\tinternalState = {\n\t set: set,\n\t get: get,\n\t has: has,\n\t enforce: enforce,\n\t getterFor: getterFor\n\t};\n\treturn internalState;\n}\n\nvar hasRequiredMakeBuiltIn;\n\nfunction requireMakeBuiltIn () {\n\tif (hasRequiredMakeBuiltIn) return makeBuiltIn.exports;\n\thasRequiredMakeBuiltIn = 1;\n\tvar fails = requireFails();\n\tvar isCallable = requireIsCallable();\n\tvar hasOwn = requireHasOwnProperty();\n\tvar DESCRIPTORS = requireDescriptors();\n\tvar CONFIGURABLE_FUNCTION_NAME = requireFunctionName().CONFIGURABLE;\n\tvar inspectSource = requireInspectSource();\n\tvar InternalStateModule = requireInternalState();\n\n\tvar enforceInternalState = InternalStateModule.enforce;\n\tvar getInternalState = InternalStateModule.get;\n\t// eslint-disable-next-line es-x/no-object-defineproperty -- safe\n\tvar defineProperty = Object.defineProperty;\n\n\tvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n\t return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n\t});\n\n\tvar TEMPLATE = String(String).split('String');\n\n\tvar makeBuiltIn$1 = makeBuiltIn.exports = function (value, name, options) {\n\t if (String(name).slice(0, 7) === 'Symbol(') {\n\t name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n\t }\n\t if (options && options.getter) name = 'get ' + name;\n\t if (options && options.setter) name = 'set ' + name;\n\t if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n\t if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n\t else value.name = name;\n\t }\n\t if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n\t defineProperty(value, 'length', { value: options.arity });\n\t }\n\t try {\n\t if (options && hasOwn(options, 'constructor') && options.constructor) {\n\t if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n\t // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n\t } else if (value.prototype) value.prototype = undefined;\n\t } catch (error) { /* empty */ }\n\t var state = enforceInternalState(value);\n\t if (!hasOwn(state, 'source')) {\n\t state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n\t } return value;\n\t};\n\n\t// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n\t// eslint-disable-next-line no-extend-native -- required\n\tFunction.prototype.toString = makeBuiltIn$1(function toString() {\n\t return isCallable(this) && getInternalState(this).source || inspectSource(this);\n\t}, 'toString');\n\treturn makeBuiltIn.exports;\n}\n\nvar defineBuiltIn;\nvar hasRequiredDefineBuiltIn;\n\nfunction requireDefineBuiltIn () {\n\tif (hasRequiredDefineBuiltIn) return defineBuiltIn;\n\thasRequiredDefineBuiltIn = 1;\n\tvar isCallable = requireIsCallable();\n\tvar definePropertyModule = requireObjectDefineProperty();\n\tvar makeBuiltIn = requireMakeBuiltIn();\n\tvar defineGlobalProperty = requireDefineGlobalProperty();\n\n\tdefineBuiltIn = function (O, key, value, options) {\n\t if (!options) options = {};\n\t var simple = options.enumerable;\n\t var name = options.name !== undefined ? options.name : key;\n\t if (isCallable(value)) makeBuiltIn(value, name, options);\n\t if (options.global) {\n\t if (simple) O[key] = value;\n\t else defineGlobalProperty(key, value);\n\t } else {\n\t try {\n\t if (!options.unsafe) delete O[key];\n\t else if (O[key]) simple = true;\n\t } catch (error) { /* empty */ }\n\t if (simple) O[key] = value;\n\t else definePropertyModule.f(O, key, {\n\t value: value,\n\t enumerable: false,\n\t configurable: !options.nonConfigurable,\n\t writable: !options.nonWritable\n\t });\n\t } return O;\n\t};\n\treturn defineBuiltIn;\n}\n\nvar objectGetOwnPropertyNames = {};\n\nvar mathTrunc;\nvar hasRequiredMathTrunc;\n\nfunction requireMathTrunc () {\n\tif (hasRequiredMathTrunc) return mathTrunc;\n\thasRequiredMathTrunc = 1;\n\tvar ceil = Math.ceil;\n\tvar floor = Math.floor;\n\n\t// `Math.trunc` method\n\t// https://tc39.es/ecma262/#sec-math.trunc\n\t// eslint-disable-next-line es-x/no-math-trunc -- safe\n\tmathTrunc = Math.trunc || function trunc(x) {\n\t var n = +x;\n\t return (n > 0 ? floor : ceil)(n);\n\t};\n\treturn mathTrunc;\n}\n\nvar toIntegerOrInfinity;\nvar hasRequiredToIntegerOrInfinity;\n\nfunction requireToIntegerOrInfinity () {\n\tif (hasRequiredToIntegerOrInfinity) return toIntegerOrInfinity;\n\thasRequiredToIntegerOrInfinity = 1;\n\tvar trunc = requireMathTrunc();\n\n\t// `ToIntegerOrInfinity` abstract operation\n\t// https://tc39.es/ecma262/#sec-tointegerorinfinity\n\ttoIntegerOrInfinity = function (argument) {\n\t var number = +argument;\n\t // eslint-disable-next-line no-self-compare -- NaN check\n\t return number !== number || number === 0 ? 0 : trunc(number);\n\t};\n\treturn toIntegerOrInfinity;\n}\n\nvar toAbsoluteIndex;\nvar hasRequiredToAbsoluteIndex;\n\nfunction requireToAbsoluteIndex () {\n\tif (hasRequiredToAbsoluteIndex) return toAbsoluteIndex;\n\thasRequiredToAbsoluteIndex = 1;\n\tvar toIntegerOrInfinity = requireToIntegerOrInfinity();\n\n\tvar max = Math.max;\n\tvar min = Math.min;\n\n\t// Helper for a popular repeating case of the spec:\n\t// Let integer be ? ToInteger(index).\n\t// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\n\ttoAbsoluteIndex = function (index, length) {\n\t var integer = toIntegerOrInfinity(index);\n\t return integer < 0 ? max(integer + length, 0) : min(integer, length);\n\t};\n\treturn toAbsoluteIndex;\n}\n\nvar toLength;\nvar hasRequiredToLength;\n\nfunction requireToLength () {\n\tif (hasRequiredToLength) return toLength;\n\thasRequiredToLength = 1;\n\tvar toIntegerOrInfinity = requireToIntegerOrInfinity();\n\n\tvar min = Math.min;\n\n\t// `ToLength` abstract operation\n\t// https://tc39.es/ecma262/#sec-tolength\n\ttoLength = function (argument) {\n\t return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n\t};\n\treturn toLength;\n}\n\nvar lengthOfArrayLike;\nvar hasRequiredLengthOfArrayLike;\n\nfunction requireLengthOfArrayLike () {\n\tif (hasRequiredLengthOfArrayLike) return lengthOfArrayLike;\n\thasRequiredLengthOfArrayLike = 1;\n\tvar toLength = requireToLength();\n\n\t// `LengthOfArrayLike` abstract operation\n\t// https://tc39.es/ecma262/#sec-lengthofarraylike\n\tlengthOfArrayLike = function (obj) {\n\t return toLength(obj.length);\n\t};\n\treturn lengthOfArrayLike;\n}\n\nvar arrayIncludes;\nvar hasRequiredArrayIncludes;\n\nfunction requireArrayIncludes () {\n\tif (hasRequiredArrayIncludes) return arrayIncludes;\n\thasRequiredArrayIncludes = 1;\n\tvar toIndexedObject = requireToIndexedObject();\n\tvar toAbsoluteIndex = requireToAbsoluteIndex();\n\tvar lengthOfArrayLike = requireLengthOfArrayLike();\n\n\t// `Array.prototype.{ indexOf, includes }` methods implementation\n\tvar createMethod = function (IS_INCLUDES) {\n\t return function ($this, el, fromIndex) {\n\t var O = toIndexedObject($this);\n\t var length = lengthOfArrayLike(O);\n\t var index = toAbsoluteIndex(fromIndex, length);\n\t var value;\n\t // Array#includes uses SameValueZero equality algorithm\n\t // eslint-disable-next-line no-self-compare -- NaN check\n\t if (IS_INCLUDES && el != el) while (length > index) {\n\t value = O[index++];\n\t // eslint-disable-next-line no-self-compare -- NaN check\n\t if (value != value) return true;\n\t // Array#indexOf ignores holes, Array#includes - not\n\t } else for (;length > index; index++) {\n\t if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n\t } return !IS_INCLUDES && -1;\n\t };\n\t};\n\n\tarrayIncludes = {\n\t // `Array.prototype.includes` method\n\t // https://tc39.es/ecma262/#sec-array.prototype.includes\n\t includes: createMethod(true),\n\t // `Array.prototype.indexOf` method\n\t // https://tc39.es/ecma262/#sec-array.prototype.indexof\n\t indexOf: createMethod(false)\n\t};\n\treturn arrayIncludes;\n}\n\nvar objectKeysInternal;\nvar hasRequiredObjectKeysInternal;\n\nfunction requireObjectKeysInternal () {\n\tif (hasRequiredObjectKeysInternal) return objectKeysInternal;\n\thasRequiredObjectKeysInternal = 1;\n\tvar uncurryThis = requireFunctionUncurryThis();\n\tvar hasOwn = requireHasOwnProperty();\n\tvar toIndexedObject = requireToIndexedObject();\n\tvar indexOf = requireArrayIncludes().indexOf;\n\tvar hiddenKeys = requireHiddenKeys();\n\n\tvar push = uncurryThis([].push);\n\n\tobjectKeysInternal = function (object, names) {\n\t var O = toIndexedObject(object);\n\t var i = 0;\n\t var result = [];\n\t var key;\n\t for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n\t // Don't enum bug & hidden keys\n\t while (names.length > i) if (hasOwn(O, key = names[i++])) {\n\t ~indexOf(result, key) || push(result, key);\n\t }\n\t return result;\n\t};\n\treturn objectKeysInternal;\n}\n\nvar enumBugKeys;\nvar hasRequiredEnumBugKeys;\n\nfunction requireEnumBugKeys () {\n\tif (hasRequiredEnumBugKeys) return enumBugKeys;\n\thasRequiredEnumBugKeys = 1;\n\t// IE8- don't enum bug keys\n\tenumBugKeys = [\n\t 'constructor',\n\t 'hasOwnProperty',\n\t 'isPrototypeOf',\n\t 'propertyIsEnumerable',\n\t 'toLocaleString',\n\t 'toString',\n\t 'valueOf'\n\t];\n\treturn enumBugKeys;\n}\n\nvar hasRequiredObjectGetOwnPropertyNames;\n\nfunction requireObjectGetOwnPropertyNames () {\n\tif (hasRequiredObjectGetOwnPropertyNames) return objectGetOwnPropertyNames;\n\thasRequiredObjectGetOwnPropertyNames = 1;\n\tvar internalObjectKeys = requireObjectKeysInternal();\n\tvar enumBugKeys = requireEnumBugKeys();\n\n\tvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n\t// `Object.getOwnPropertyNames` method\n\t// https://tc39.es/ecma262/#sec-object.getownpropertynames\n\t// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe\n\tobjectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n\t return internalObjectKeys(O, hiddenKeys);\n\t};\n\treturn objectGetOwnPropertyNames;\n}\n\nvar objectGetOwnPropertySymbols = {};\n\nvar hasRequiredObjectGetOwnPropertySymbols;\n\nfunction requireObjectGetOwnPropertySymbols () {\n\tif (hasRequiredObjectGetOwnPropertySymbols) return objectGetOwnPropertySymbols;\n\thasRequiredObjectGetOwnPropertySymbols = 1;\n\t// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\n\tobjectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols;\n\treturn objectGetOwnPropertySymbols;\n}\n\nvar ownKeys$1;\nvar hasRequiredOwnKeys;\n\nfunction requireOwnKeys () {\n\tif (hasRequiredOwnKeys) return ownKeys$1;\n\thasRequiredOwnKeys = 1;\n\tvar getBuiltIn = requireGetBuiltIn();\n\tvar uncurryThis = requireFunctionUncurryThis();\n\tvar getOwnPropertyNamesModule = requireObjectGetOwnPropertyNames();\n\tvar getOwnPropertySymbolsModule = requireObjectGetOwnPropertySymbols();\n\tvar anObject = requireAnObject();\n\n\tvar concat = uncurryThis([].concat);\n\n\t// all object keys, includes non-enumerable and symbols\n\townKeys$1 = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n\t var keys = getOwnPropertyNamesModule.f(anObject(it));\n\t var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n\t return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n\t};\n\treturn ownKeys$1;\n}\n\nvar copyConstructorProperties;\nvar hasRequiredCopyConstructorProperties;\n\nfunction requireCopyConstructorProperties () {\n\tif (hasRequiredCopyConstructorProperties) return copyConstructorProperties;\n\thasRequiredCopyConstructorProperties = 1;\n\tvar hasOwn = requireHasOwnProperty();\n\tvar ownKeys = requireOwnKeys();\n\tvar getOwnPropertyDescriptorModule = requireObjectGetOwnPropertyDescriptor();\n\tvar definePropertyModule = requireObjectDefineProperty();\n\n\tcopyConstructorProperties = function (target, source, exceptions) {\n\t var keys = ownKeys(source);\n\t var defineProperty = definePropertyModule.f;\n\t var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n\t for (var i = 0; i < keys.length; i++) {\n\t var key = keys[i];\n\t if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n\t defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n\t }\n\t }\n\t};\n\treturn copyConstructorProperties;\n}\n\nvar isForced_1;\nvar hasRequiredIsForced;\n\nfunction requireIsForced () {\n\tif (hasRequiredIsForced) return isForced_1;\n\thasRequiredIsForced = 1;\n\tvar fails = requireFails();\n\tvar isCallable = requireIsCallable();\n\n\tvar replacement = /#|\\.prototype\\./;\n\n\tvar isForced = function (feature, detection) {\n\t var value = data[normalize(feature)];\n\t return value == POLYFILL ? true\n\t : value == NATIVE ? false\n\t : isCallable(detection) ? fails(detection)\n\t : !!detection;\n\t};\n\n\tvar normalize = isForced.normalize = function (string) {\n\t return String(string).replace(replacement, '.').toLowerCase();\n\t};\n\n\tvar data = isForced.data = {};\n\tvar NATIVE = isForced.NATIVE = 'N';\n\tvar POLYFILL = isForced.POLYFILL = 'P';\n\n\tisForced_1 = isForced;\n\treturn isForced_1;\n}\n\nvar _export;\nvar hasRequired_export;\n\nfunction require_export () {\n\tif (hasRequired_export) return _export;\n\thasRequired_export = 1;\n\tvar global = requireGlobal();\n\tvar getOwnPropertyDescriptor = requireObjectGetOwnPropertyDescriptor().f;\n\tvar createNonEnumerableProperty = requireCreateNonEnumerableProperty();\n\tvar defineBuiltIn = requireDefineBuiltIn();\n\tvar defineGlobalProperty = requireDefineGlobalProperty();\n\tvar copyConstructorProperties = requireCopyConstructorProperties();\n\tvar isForced = requireIsForced();\n\n\t/*\n\t options.target - name of the target object\n\t options.global - target is the global object\n\t options.stat - export as static methods of target\n\t options.proto - export as prototype methods of target\n\t options.real - real prototype method for the `pure` version\n\t options.forced - export even if the native feature is available\n\t options.bind - bind methods to the target, required for the `pure` version\n\t options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n\t options.unsafe - use the simple assignment of property instead of delete + defineProperty\n\t options.sham - add a flag to not completely full polyfills\n\t options.enumerable - export as enumerable property\n\t options.dontCallGetSet - prevent calling a getter on target\n\t options.name - the .name of the function if it does not match the key\n\t*/\n\t_export = function (options, source) {\n\t var TARGET = options.target;\n\t var GLOBAL = options.global;\n\t var STATIC = options.stat;\n\t var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n\t if (GLOBAL) {\n\t target = global;\n\t } else if (STATIC) {\n\t target = global[TARGET] || defineGlobalProperty(TARGET, {});\n\t } else {\n\t target = (global[TARGET] || {}).prototype;\n\t }\n\t if (target) for (key in source) {\n\t sourceProperty = source[key];\n\t if (options.dontCallGetSet) {\n\t descriptor = getOwnPropertyDescriptor(target, key);\n\t targetProperty = descriptor && descriptor.value;\n\t } else targetProperty = target[key];\n\t FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n\t // contained in target\n\t if (!FORCED && targetProperty !== undefined) {\n\t if (typeof sourceProperty == typeof targetProperty) continue;\n\t copyConstructorProperties(sourceProperty, targetProperty);\n\t }\n\t // add a flag to not completely full polyfills\n\t if (options.sham || (targetProperty && targetProperty.sham)) {\n\t createNonEnumerableProperty(sourceProperty, 'sham', true);\n\t }\n\t defineBuiltIn(target, key, sourceProperty, options);\n\t }\n\t};\n\treturn _export;\n}\n\nvar toStringTagSupport;\nvar hasRequiredToStringTagSupport;\n\nfunction requireToStringTagSupport () {\n\tif (hasRequiredToStringTagSupport) return toStringTagSupport;\n\thasRequiredToStringTagSupport = 1;\n\tvar wellKnownSymbol = requireWellKnownSymbol();\n\n\tvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\tvar test = {};\n\n\ttest[TO_STRING_TAG] = 'z';\n\n\ttoStringTagSupport = String(test) === '[object z]';\n\treturn toStringTagSupport;\n}\n\nvar classof;\nvar hasRequiredClassof;\n\nfunction requireClassof () {\n\tif (hasRequiredClassof) return classof;\n\thasRequiredClassof = 1;\n\tvar TO_STRING_TAG_SUPPORT = requireToStringTagSupport();\n\tvar isCallable = requireIsCallable();\n\tvar classofRaw = requireClassofRaw();\n\tvar wellKnownSymbol = requireWellKnownSymbol();\n\n\tvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\tvar $Object = Object;\n\n\t// ES3 wrong here\n\tvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n\t// fallback for IE11 Script Access Denied error\n\tvar tryGet = function (it, key) {\n\t try {\n\t return it[key];\n\t } catch (error) { /* empty */ }\n\t};\n\n\t// getting tag from ES6+ `Object.prototype.toString`\n\tclassof = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n\t var O, tag, result;\n\t return it === undefined ? 'Undefined' : it === null ? 'Null'\n\t // @@toStringTag case\n\t : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n\t // builtinTag case\n\t : CORRECT_ARGUMENTS ? classofRaw(O)\n\t // ES3 arguments fallback\n\t : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n\t};\n\treturn classof;\n}\n\nvar toString$1;\nvar hasRequiredToString;\n\nfunction requireToString () {\n\tif (hasRequiredToString) return toString$1;\n\thasRequiredToString = 1;\n\tvar classof = requireClassof();\n\n\tvar $String = String;\n\n\ttoString$1 = function (argument) {\n\t if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n\t return $String(argument);\n\t};\n\treturn toString$1;\n}\n\nvar regexpFlags;\nvar hasRequiredRegexpFlags;\n\nfunction requireRegexpFlags () {\n\tif (hasRequiredRegexpFlags) return regexpFlags;\n\thasRequiredRegexpFlags = 1;\n\tvar anObject = requireAnObject();\n\n\t// `RegExp.prototype.flags` getter implementation\n\t// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\n\tregexpFlags = function () {\n\t var that = anObject(this);\n\t var result = '';\n\t if (that.hasIndices) result += 'd';\n\t if (that.global) result += 'g';\n\t if (that.ignoreCase) result += 'i';\n\t if (that.multiline) result += 'm';\n\t if (that.dotAll) result += 's';\n\t if (that.unicode) result += 'u';\n\t if (that.unicodeSets) result += 'v';\n\t if (that.sticky) result += 'y';\n\t return result;\n\t};\n\treturn regexpFlags;\n}\n\nvar regexpStickyHelpers;\nvar hasRequiredRegexpStickyHelpers;\n\nfunction requireRegexpStickyHelpers () {\n\tif (hasRequiredRegexpStickyHelpers) return regexpStickyHelpers;\n\thasRequiredRegexpStickyHelpers = 1;\n\tvar fails = requireFails();\n\tvar global = requireGlobal();\n\n\t// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n\tvar $RegExp = global.RegExp;\n\n\tvar UNSUPPORTED_Y = fails(function () {\n\t var re = $RegExp('a', 'y');\n\t re.lastIndex = 2;\n\t return re.exec('abcd') != null;\n\t});\n\n\t// UC Browser bug\n\t// https://github.com/zloirock/core-js/issues/1008\n\tvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n\t return !$RegExp('a', 'y').sticky;\n\t});\n\n\tvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n\t // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n\t var re = $RegExp('^r', 'gy');\n\t re.lastIndex = 2;\n\t return re.exec('str') != null;\n\t});\n\n\tregexpStickyHelpers = {\n\t BROKEN_CARET: BROKEN_CARET,\n\t MISSED_STICKY: MISSED_STICKY,\n\t UNSUPPORTED_Y: UNSUPPORTED_Y\n\t};\n\treturn regexpStickyHelpers;\n}\n\nvar objectDefineProperties = {};\n\nvar objectKeys;\nvar hasRequiredObjectKeys;\n\nfunction requireObjectKeys () {\n\tif (hasRequiredObjectKeys) return objectKeys;\n\thasRequiredObjectKeys = 1;\n\tvar internalObjectKeys = requireObjectKeysInternal();\n\tvar enumBugKeys = requireEnumBugKeys();\n\n\t// `Object.keys` method\n\t// https://tc39.es/ecma262/#sec-object.keys\n\t// eslint-disable-next-line es-x/no-object-keys -- safe\n\tobjectKeys = Object.keys || function keys(O) {\n\t return internalObjectKeys(O, enumBugKeys);\n\t};\n\treturn objectKeys;\n}\n\nvar hasRequiredObjectDefineProperties;\n\nfunction requireObjectDefineProperties () {\n\tif (hasRequiredObjectDefineProperties) return objectDefineProperties;\n\thasRequiredObjectDefineProperties = 1;\n\tvar DESCRIPTORS = requireDescriptors();\n\tvar V8_PROTOTYPE_DEFINE_BUG = requireV8PrototypeDefineBug();\n\tvar definePropertyModule = requireObjectDefineProperty();\n\tvar anObject = requireAnObject();\n\tvar toIndexedObject = requireToIndexedObject();\n\tvar objectKeys = requireObjectKeys();\n\n\t// `Object.defineProperties` method\n\t// https://tc39.es/ecma262/#sec-object.defineproperties\n\t// eslint-disable-next-line es-x/no-object-defineproperties -- safe\n\tobjectDefineProperties.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n\t anObject(O);\n\t var props = toIndexedObject(Properties);\n\t var keys = objectKeys(Properties);\n\t var length = keys.length;\n\t var index = 0;\n\t var key;\n\t while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n\t return O;\n\t};\n\treturn objectDefineProperties;\n}\n\nvar html;\nvar hasRequiredHtml;\n\nfunction requireHtml () {\n\tif (hasRequiredHtml) return html;\n\thasRequiredHtml = 1;\n\tvar getBuiltIn = requireGetBuiltIn();\n\n\thtml = getBuiltIn('document', 'documentElement');\n\treturn html;\n}\n\nvar objectCreate;\nvar hasRequiredObjectCreate;\n\nfunction requireObjectCreate () {\n\tif (hasRequiredObjectCreate) return objectCreate;\n\thasRequiredObjectCreate = 1;\n\tvar anObject = requireAnObject();\n\tvar definePropertiesModule = requireObjectDefineProperties();\n\tvar enumBugKeys = requireEnumBugKeys();\n\tvar hiddenKeys = requireHiddenKeys();\n\tvar html = requireHtml();\n\tvar documentCreateElement = requireDocumentCreateElement();\n\tvar sharedKey = requireSharedKey();\n\n\tvar GT = '>';\n\tvar LT = '<';\n\tvar PROTOTYPE = 'prototype';\n\tvar SCRIPT = 'script';\n\tvar IE_PROTO = sharedKey('IE_PROTO');\n\n\tvar EmptyConstructor = function () { /* empty */ };\n\n\tvar scriptTag = function (content) {\n\t return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n\t};\n\n\t// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\n\tvar NullProtoObjectViaActiveX = function (activeXDocument) {\n\t activeXDocument.write(scriptTag(''));\n\t activeXDocument.close();\n\t var temp = activeXDocument.parentWindow.Object;\n\t activeXDocument = null; // avoid memory leak\n\t return temp;\n\t};\n\n\t// Create object with fake `null` prototype: use iframe Object with cleared prototype\n\tvar NullProtoObjectViaIFrame = function () {\n\t // Thrash, waste and sodomy: IE GC bug\n\t var iframe = documentCreateElement('iframe');\n\t var JS = 'java' + SCRIPT + ':';\n\t var iframeDocument;\n\t iframe.style.display = 'none';\n\t html.appendChild(iframe);\n\t // https://github.com/zloirock/core-js/issues/475\n\t iframe.src = String(JS);\n\t iframeDocument = iframe.contentWindow.document;\n\t iframeDocument.open();\n\t iframeDocument.write(scriptTag('document.F=Object'));\n\t iframeDocument.close();\n\t return iframeDocument.F;\n\t};\n\n\t// Check for document.domain and active x support\n\t// No need to use active x approach when document.domain is not set\n\t// see https://github.com/es-shims/es5-shim/issues/150\n\t// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n\t// avoid IE GC bug\n\tvar activeXDocument;\n\tvar NullProtoObject = function () {\n\t try {\n\t activeXDocument = new ActiveXObject('htmlfile');\n\t } catch (error) { /* ignore */ }\n\t NullProtoObject = typeof document != 'undefined'\n\t ? document.domain && activeXDocument\n\t ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n\t : NullProtoObjectViaIFrame()\n\t : NullProtoObjectViaActiveX(activeXDocument); // WSH\n\t var length = enumBugKeys.length;\n\t while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n\t return NullProtoObject();\n\t};\n\n\thiddenKeys[IE_PROTO] = true;\n\n\t// `Object.create` method\n\t// https://tc39.es/ecma262/#sec-object.create\n\t// eslint-disable-next-line es-x/no-object-create -- safe\n\tobjectCreate = Object.create || function create(O, Properties) {\n\t var result;\n\t if (O !== null) {\n\t EmptyConstructor[PROTOTYPE] = anObject(O);\n\t result = new EmptyConstructor();\n\t EmptyConstructor[PROTOTYPE] = null;\n\t // add \"__proto__\" for Object.getPrototypeOf polyfill\n\t result[IE_PROTO] = O;\n\t } else result = NullProtoObject();\n\t return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n\t};\n\treturn objectCreate;\n}\n\nvar regexpUnsupportedDotAll;\nvar hasRequiredRegexpUnsupportedDotAll;\n\nfunction requireRegexpUnsupportedDotAll () {\n\tif (hasRequiredRegexpUnsupportedDotAll) return regexpUnsupportedDotAll;\n\thasRequiredRegexpUnsupportedDotAll = 1;\n\tvar fails = requireFails();\n\tvar global = requireGlobal();\n\n\t// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\n\tvar $RegExp = global.RegExp;\n\n\tregexpUnsupportedDotAll = fails(function () {\n\t var re = $RegExp('.', 's');\n\t return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n\t});\n\treturn regexpUnsupportedDotAll;\n}\n\nvar regexpUnsupportedNcg;\nvar hasRequiredRegexpUnsupportedNcg;\n\nfunction requireRegexpUnsupportedNcg () {\n\tif (hasRequiredRegexpUnsupportedNcg) return regexpUnsupportedNcg;\n\thasRequiredRegexpUnsupportedNcg = 1;\n\tvar fails = requireFails();\n\tvar global = requireGlobal();\n\n\t// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\n\tvar $RegExp = global.RegExp;\n\n\tregexpUnsupportedNcg = fails(function () {\n\t var re = $RegExp('(?<a>b)', 'g');\n\t return re.exec('b').groups.a !== 'b' ||\n\t 'b'.replace(re, '$<a>c') !== 'bc';\n\t});\n\treturn regexpUnsupportedNcg;\n}\n\nvar regexpExec;\nvar hasRequiredRegexpExec;\n\nfunction requireRegexpExec () {\n\tif (hasRequiredRegexpExec) return regexpExec;\n\thasRequiredRegexpExec = 1;\n\t/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n\t/* eslint-disable regexp/no-useless-quantifier -- testing */\n\tvar call = requireFunctionCall();\n\tvar uncurryThis = requireFunctionUncurryThis();\n\tvar toString = requireToString();\n\tvar regexpFlags = requireRegexpFlags();\n\tvar stickyHelpers = requireRegexpStickyHelpers();\n\tvar shared = requireShared();\n\tvar create = requireObjectCreate();\n\tvar getInternalState = requireInternalState().get;\n\tvar UNSUPPORTED_DOT_ALL = requireRegexpUnsupportedDotAll();\n\tvar UNSUPPORTED_NCG = requireRegexpUnsupportedNcg();\n\n\tvar nativeReplace = shared('native-string-replace', String.prototype.replace);\n\tvar nativeExec = RegExp.prototype.exec;\n\tvar patchedExec = nativeExec;\n\tvar charAt = uncurryThis(''.charAt);\n\tvar indexOf = uncurryThis(''.indexOf);\n\tvar replace = uncurryThis(''.replace);\n\tvar stringSlice = uncurryThis(''.slice);\n\n\tvar UPDATES_LAST_INDEX_WRONG = (function () {\n\t var re1 = /a/;\n\t var re2 = /b*/g;\n\t call(nativeExec, re1, 'a');\n\t call(nativeExec, re2, 'a');\n\t return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n\t})();\n\n\tvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n\t// nonparticipating capturing group, copied from es5-shim's String#split patch.\n\tvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\n\tvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\n\tif (PATCH) {\n\t patchedExec = function exec(string) {\n\t var re = this;\n\t var state = getInternalState(re);\n\t var str = toString(string);\n\t var raw = state.raw;\n\t var result, reCopy, lastIndex, match, i, object, group;\n\n\t if (raw) {\n\t raw.lastIndex = re.lastIndex;\n\t result = call(patchedExec, raw, str);\n\t re.lastIndex = raw.lastIndex;\n\t return result;\n\t }\n\n\t var groups = state.groups;\n\t var sticky = UNSUPPORTED_Y && re.sticky;\n\t var flags = call(regexpFlags, re);\n\t var source = re.source;\n\t var charsAdded = 0;\n\t var strCopy = str;\n\n\t if (sticky) {\n\t flags = replace(flags, 'y', '');\n\t if (indexOf(flags, 'g') === -1) {\n\t flags += 'g';\n\t }\n\n\t strCopy = stringSlice(str, re.lastIndex);\n\t // Support anchored sticky behavior.\n\t if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n\t source = '(?: ' + source + ')';\n\t strCopy = ' ' + strCopy;\n\t charsAdded++;\n\t }\n\t // ^(? + rx + ) is needed, in combination with some str slicing, to\n\t // simulate the 'y' flag.\n\t reCopy = new RegExp('^(?:' + source + ')', flags);\n\t }\n\n\t if (NPCG_INCLUDED) {\n\t reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n\t }\n\t if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n\t match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n\t if (sticky) {\n\t if (match) {\n\t match.input = stringSlice(match.input, charsAdded);\n\t match[0] = stringSlice(match[0], charsAdded);\n\t match.index = re.lastIndex;\n\t re.lastIndex += match[0].length;\n\t } else re.lastIndex = 0;\n\t } else if (UPDATES_LAST_INDEX_WRONG && match) {\n\t re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n\t }\n\t if (NPCG_INCLUDED && match && match.length > 1) {\n\t // Fix browsers whose `exec` methods don't consistently return `undefined`\n\t // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n\t call(nativeReplace, match[0], reCopy, function () {\n\t for (i = 1; i < arguments.length - 2; i++) {\n\t if (arguments[i] === undefined) match[i] = undefined;\n\t }\n\t });\n\t }\n\n\t if (match && groups) {\n\t match.groups = object = create(null);\n\t for (i = 0; i < groups.length; i++) {\n\t group = groups[i];\n\t object[group[0]] = match[group[1]];\n\t }\n\t }\n\n\t return match;\n\t };\n\t}\n\n\tregexpExec = patchedExec;\n\treturn regexpExec;\n}\n\nvar hasRequiredEs_regexp_exec;\n\nfunction requireEs_regexp_exec () {\n\tif (hasRequiredEs_regexp_exec) return es_regexp_exec;\n\thasRequiredEs_regexp_exec = 1;\n\tvar $ = require_export();\n\tvar exec = requireRegexpExec();\n\n\t// `RegExp.prototype.exec` method\n\t// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n\t$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n\t exec: exec\n\t});\n\treturn es_regexp_exec;\n}\n\nvar es_string_replace = {};\n\nvar functionApply;\nvar hasRequiredFunctionApply;\n\nfunction requireFunctionApply () {\n\tif (hasRequiredFunctionApply) return functionApply;\n\thasRequiredFunctionApply = 1;\n\tvar NATIVE_BIND = requireFunctionBindNative();\n\n\tvar FunctionPrototype = Function.prototype;\n\tvar apply = FunctionPrototype.apply;\n\tvar call = FunctionPrototype.call;\n\n\t// eslint-disable-next-line es-x/no-reflect -- safe\n\tfunctionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n\t return call.apply(apply, arguments);\n\t});\n\treturn functionApply;\n}\n\nvar fixRegexpWellKnownSymbolLogic;\nvar hasRequiredFixRegexpWellKnownSymbolLogic;\n\nfunction requireFixRegexpWellKnownSymbolLogic () {\n\tif (hasRequiredFixRegexpWellKnownSymbolLogic) return fixRegexpWellKnownSymbolLogic;\n\thasRequiredFixRegexpWellKnownSymbolLogic = 1;\n\t// TODO: Remove from `core-js@4` since it's moved to entry points\n\trequireEs_regexp_exec();\n\tvar uncurryThis = requireFunctionUncurryThis();\n\tvar defineBuiltIn = requireDefineBuiltIn();\n\tvar regexpExec = requireRegexpExec();\n\tvar fails = requireFails();\n\tvar wellKnownSymbol = requireWellKnownSymbol();\n\tvar createNonEnumerableProperty = requireCreateNonEnumerableProperty();\n\n\tvar SPECIES = wellKnownSymbol('species');\n\tvar RegExpPrototype = RegExp.prototype;\n\n\tfixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) {\n\t var SYMBOL = wellKnownSymbol(KEY);\n\n\t var DELEGATES_TO_SYMBOL = !fails(function () {\n\t // String methods call symbol-named RegEp methods\n\t var O = {};\n\t O[SYMBOL] = function () { return 7; };\n\t return ''[KEY](O) != 7;\n\t });\n\n\t var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n\t // Symbol-named RegExp methods call .exec\n\t var execCalled = false;\n\t var re = /a/;\n\n\t if (KEY === 'split') {\n\t // We can't use real regex here since it causes deoptimization\n\t // and serious performance degradation in V8\n\t // https://github.com/zloirock/core-js/issues/306\n\t re = {};\n\t // RegExp[@@split] doesn't call the regex's exec method, but first creates\n\t // a new one. We need to return the patched regex when creating the new one.\n\t re.constructor = {};\n\t re.constructor[SPECIES] = function () { return re; };\n\t re.flags = '';\n\t re[SYMBOL] = /./[SYMBOL];\n\t }\n\n\t re.exec = function () { execCalled = true; return null; };\n\n\t re[SYMBOL]('');\n\t return !execCalled;\n\t });\n\n\t if (\n\t !DELEGATES_TO_SYMBOL ||\n\t !DELEGATES_TO_EXEC ||\n\t FORCED\n\t ) {\n\t var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n\t var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n\t var uncurriedNativeMethod = uncurryThis(nativeMethod);\n\t var $exec = regexp.exec;\n\t if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n\t if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n\t // The native String method already delegates to @@method (this\n\t // polyfilled function), leasing to infinite recursion.\n\t // We avoid it by directly calling the native @@method method.\n\t return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n\t }\n\t return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n\t }\n\t return { done: false };\n\t });\n\n\t defineBuiltIn(String.prototype, KEY, methods[0]);\n\t defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n\t }\n\n\t if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n\t};\n\treturn fixRegexpWellKnownSymbolLogic;\n}\n\nvar stringMultibyte;\nvar hasRequiredStringMultibyte;\n\nfunction requireStringMultibyte () {\n\tif (hasRequiredStringMultibyte) return stringMultibyte;\n\thasRequiredStringMultibyte = 1;\n\tvar uncurryThis = requireFunctionUncurryThis();\n\tvar toIntegerOrInfinity = requireToIntegerOrInfinity();\n\tvar toString = requireToString();\n\tvar requireObjectCoercible = requireRequireObjectCoercible();\n\n\tvar charAt = uncurryThis(''.charAt);\n\tvar charCodeAt = uncurryThis(''.charCodeAt);\n\tvar stringSlice = uncurryThis(''.slice);\n\n\tvar createMethod = function (CONVERT_TO_STRING) {\n\t return function ($this, pos) {\n\t var S = toString(requireObjectCoercible($this));\n\t var position = toIntegerOrInfinity(pos);\n\t var size = S.length;\n\t var first, second;\n\t if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n\t first = charCodeAt(S, position);\n\t return first < 0xD800 || first > 0xDBFF || position + 1 === size\n\t || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n\t ? CONVERT_TO_STRING\n\t ? charAt(S, position)\n\t : first\n\t : CONVERT_TO_STRING\n\t ? stringSlice(S, position, position + 2)\n\t : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n\t };\n\t};\n\n\tstringMultibyte = {\n\t // `String.prototype.codePointAt` method\n\t // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n\t codeAt: createMethod(false),\n\t // `String.prototype.at` method\n\t // https://github.com/mathiasbynens/String.prototype.at\n\t charAt: createMethod(true)\n\t};\n\treturn stringMultibyte;\n}\n\nvar advanceStringIndex;\nvar hasRequiredAdvanceStringIndex;\n\nfunction requireAdvanceStringIndex () {\n\tif (hasRequiredAdvanceStringIndex) return advanceStringIndex;\n\thasRequiredAdvanceStringIndex = 1;\n\tvar charAt = requireStringMultibyte().charAt;\n\n\t// `AdvanceStringIndex` abstract operation\n\t// https://tc39.es/ecma262/#sec-advancestringindex\n\tadvanceStringIndex = function (S, index, unicode) {\n\t return index + (unicode ? charAt(S, index).length : 1);\n\t};\n\treturn advanceStringIndex;\n}\n\nvar getSubstitution;\nvar hasRequiredGetSubstitution;\n\nfunction requireGetSubstitution () {\n\tif (hasRequiredGetSubstitution) return getSubstitution;\n\thasRequiredGetSubstitution = 1;\n\tvar uncurryThis = requireFunctionUncurryThis();\n\tvar toObject = requireToObject();\n\n\tvar floor = Math.floor;\n\tvar charAt = uncurryThis(''.charAt);\n\tvar replace = uncurryThis(''.replace);\n\tvar stringSlice = uncurryThis(''.slice);\n\tvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\n\tvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n\t// `GetSubstitution` abstract operation\n\t// https://tc39.es/ecma262/#sec-getsubstitution\n\tgetSubstitution = function (matched, str, position, captures, namedCaptures, replacement) {\n\t var tailPos = position + matched.length;\n\t var m = captures.length;\n\t var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n\t if (namedCaptures !== undefined) {\n\t namedCaptures = toObject(namedCaptures);\n\t symbols = SUBSTITUTION_SYMBOLS;\n\t }\n\t return replace(replacement, symbols, function (match, ch) {\n\t var capture;\n\t switch (charAt(ch, 0)) {\n\t case '$': return '$';\n\t case '&': return matched;\n\t case '`': return stringSlice(str, 0, position);\n\t case \"'\": return stringSlice(str, tailPos);\n\t case '<':\n\t capture = namedCaptures[stringSlice(ch, 1, -1)];\n\t break;\n\t default: // \\d\\d?\n\t var n = +ch;\n\t if (n === 0) return match;\n\t if (n > m) {\n\t var f = floor(n / 10);\n\t if (f === 0) return match;\n\t if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n\t return match;\n\t }\n\t capture = captures[n - 1];\n\t }\n\t return capture === undefined ? '' : capture;\n\t });\n\t};\n\treturn getSubstitution;\n}\n\nvar regexpExecAbstract;\nvar hasRequiredRegexpExecAbstract;\n\nfunction requireRegexpExecAbstract () {\n\tif (hasRequiredRegexpExecAbstract) return regexpExecAbstract;\n\thasRequiredRegexpExecAbstract = 1;\n\tvar call = requireFunctionCall();\n\tvar anObject = requireAnObject();\n\tvar isCallable = requireIsCallable();\n\tvar classof = requireClassofRaw();\n\tvar regexpExec = requireRegexpExec();\n\n\tvar $TypeError = TypeError;\n\n\t// `RegExpExec` abstract operation\n\t// https://tc39.es/ecma262/#sec-regexpexec\n\tregexpExecAbstract = function (R, S) {\n\t var exec = R.exec;\n\t if (isCallable(exec)) {\n\t var result = call(exec, R, S);\n\t if (result !== null) anObject(result);\n\t return result;\n\t }\n\t if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n\t throw $TypeError('RegExp#exec called on incompatible receiver');\n\t};\n\treturn regexpExecAbstract;\n}\n\nvar hasRequiredEs_string_replace;\n\nfunction requireEs_string_replace () {\n\tif (hasRequiredEs_string_replace) return es_string_replace;\n\thasRequiredEs_string_replace = 1;\n\tvar apply = requireFunctionApply();\n\tvar call = requireFunctionCall();\n\tvar uncurryThis = requireFunctionUncurryThis();\n\tvar fixRegExpWellKnownSymbolLogic = requireFixRegexpWellKnownSymbolLogic();\n\tvar fails = requireFails();\n\tvar anObject = requireAnObject();\n\tvar isCallable = requireIsCallable();\n\tvar isNullOrUndefined = requireIsNullOrUndefined();\n\tvar toIntegerOrInfinity = requireToIntegerOrInfinity();\n\tvar toLength = requireToLength();\n\tvar toString = requireToString();\n\tvar requireObjectCoercible = requireRequireObjectCoercible();\n\tvar advanceStringIndex = requireAdvanceStringIndex();\n\tvar getMethod = requireGetMethod();\n\tvar getSubstitution = requireGetSubstitution();\n\tvar regExpExec = requireRegexpExecAbstract();\n\tvar wellKnownSymbol = requireWellKnownSymbol();\n\n\tvar REPLACE = wellKnownSymbol('replace');\n\tvar max = Math.max;\n\tvar min = Math.min;\n\tvar concat = uncurryThis([].concat);\n\tvar push = uncurryThis([].push);\n\tvar stringIndexOf = uncurryThis(''.indexOf);\n\tvar stringSlice = uncurryThis(''.slice);\n\n\tvar maybeToString = function (it) {\n\t return it === undefined ? it : String(it);\n\t};\n\n\t// IE <= 11 replaces $0 with the whole match, as if it was $&\n\t// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\n\tvar REPLACE_KEEPS_$0 = (function () {\n\t // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n\t return 'a'.replace(/./, '$0') === '$0';\n\t})();\n\n\t// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\n\tvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n\t if (/./[REPLACE]) {\n\t return /./[REPLACE]('a', '$0') === '';\n\t }\n\t return false;\n\t})();\n\n\tvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n\t var re = /./;\n\t re.exec = function () {\n\t var result = [];\n\t result.groups = { a: '7' };\n\t return result;\n\t };\n\t // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n\t return ''.replace(re, '$<a>') !== '7';\n\t});\n\n\t// @@replace logic\n\tfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n\t var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n\t return [\n\t // `String.prototype.replace` method\n\t // https://tc39.es/ecma262/#sec-string.prototype.replace\n\t function replace(searchValue, replaceValue) {\n\t var O = requireObjectCoercible(this);\n\t var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);\n\t return replacer\n\t ? call(replacer, searchValue, O, replaceValue)\n\t : call(nativeReplace, toString(O), searchValue, replaceValue);\n\t },\n\t // `RegExp.prototype[@@replace]` method\n\t // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n\t function (string, replaceValue) {\n\t var rx = anObject(this);\n\t var S = toString(string);\n\n\t if (\n\t typeof replaceValue == 'string' &&\n\t stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n\t stringIndexOf(replaceValue, '$<') === -1\n\t ) {\n\t var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n\t if (res.done) return res.value;\n\t }\n\n\t var functionalReplace = isCallable(replaceValue);\n\t if (!functionalReplace) replaceValue = toString(replaceValue);\n\n\t var global = rx.global;\n\t if (global) {\n\t var fullUnicode = rx.unicode;\n\t rx.lastIndex = 0;\n\t }\n\t var results = [];\n\t while (true) {\n\t var result = regExpExec(rx, S);\n\t if (result === null) break;\n\n\t push(results, result);\n\t if (!global) break;\n\n\t var matchStr = toString(result[0]);\n\t if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n\t }\n\n\t var accumulatedResult = '';\n\t var nextSourcePosition = 0;\n\t for (var i = 0; i < results.length; i++) {\n\t result = results[i];\n\n\t var matched = toString(result[0]);\n\t var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n\t var captures = [];\n\t // NOTE: This is equivalent to\n\t // captures = result.slice(1).map(maybeToString)\n\t // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n\t // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n\t // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n\t for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n\t var namedCaptures = result.groups;\n\t if (functionalReplace) {\n\t var replacerArgs = concat([matched], captures, position, S);\n\t if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n\t var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n\t } else {\n\t replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n\t }\n\t if (position >= nextSourcePosition) {\n\t accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n\t nextSourcePosition = position + matched.length;\n\t }\n\t }\n\t return accumulatedResult + stringSlice(S, nextSourcePosition);\n\t }\n\t ];\n\t}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n\treturn es_string_replace;\n}\n\nvar es_object_defineProperty = {};\n\nvar hasRequiredEs_object_defineProperty;\n\nfunction requireEs_object_defineProperty () {\n\tif (hasRequiredEs_object_defineProperty) return es_object_defineProperty;\n\thasRequiredEs_object_defineProperty = 1;\n\tvar $ = require_export();\n\tvar DESCRIPTORS = requireDescriptors();\n\tvar defineProperty = requireObjectDefineProperty().f;\n\n\t// `Object.defineProperty` method\n\t// https://tc39.es/ecma262/#sec-object.defineproperty\n\t// eslint-disable-next-line es-x/no-object-defineproperty -- safe\n\t$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, {\n\t defineProperty: defineProperty\n\t});\n\treturn es_object_defineProperty;\n}\n\nvar es_object_toString = {};\n\nvar objectToString;\nvar hasRequiredObjectToString;\n\nfunction requireObjectToString () {\n\tif (hasRequiredObjectToString) return objectToString;\n\thasRequiredObjectToString = 1;\n\tvar TO_STRING_TAG_SUPPORT = requireToStringTagSupport();\n\tvar classof = requireClassof();\n\n\t// `Object.prototype.toString` method implementation\n\t// https://tc39.es/ecma262/#sec-object.prototype.tostring\n\tobjectToString = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n\t return '[object ' + classof(this) + ']';\n\t};\n\treturn objectToString;\n}\n\nvar hasRequiredEs_object_toString;\n\nfunction requireEs_object_toString () {\n\tif (hasRequiredEs_object_toString) return es_object_toString;\n\thasRequiredEs_object_toString = 1;\n\tvar TO_STRING_TAG_SUPPORT = requireToStringTagSupport();\n\tvar defineBuiltIn = requireDefineBuiltIn();\n\tvar toString = requireObjectToString();\n\n\t// `Object.prototype.toString` method\n\t// https://tc39.es/ecma262/#sec-object.prototype.tostring\n\tif (!TO_STRING_TAG_SUPPORT) {\n\t defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n\t}\n\treturn es_object_toString;\n}\n\nvar es_regexp_toString = {};\n\nvar regexpGetFlags;\nvar hasRequiredRegexpGetFlags;\n\nfunction requireRegexpGetFlags () {\n\tif (hasRequiredRegexpGetFlags) return regexpGetFlags;\n\thasRequiredRegexpGetFlags = 1;\n\tvar call = requireFunctionCall();\n\tvar hasOwn = requireHasOwnProperty();\n\tvar isPrototypeOf = requireObjectIsPrototypeOf();\n\tvar regExpFlags = requireRegexpFlags();\n\n\tvar RegExpPrototype = RegExp.prototype;\n\n\tregexpGetFlags = function (R) {\n\t var flags = R.flags;\n\t return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n\t ? call(regExpFlags, R) : flags;\n\t};\n\treturn regexpGetFlags;\n}\n\nvar hasRequiredEs_regexp_toString;\n\nfunction requireEs_regexp_toString () {\n\tif (hasRequiredEs_regexp_toString) return es_regexp_toString;\n\thasRequiredEs_regexp_toString = 1;\n\tvar PROPER_FUNCTION_NAME = requireFunctionName().PROPER;\n\tvar defineBuiltIn = requireDefineBuiltIn();\n\tvar anObject = requireAnObject();\n\tvar $toString = requireToString();\n\tvar fails = requireFails();\n\tvar getRegExpFlags = requireRegexpGetFlags();\n\n\tvar TO_STRING = 'toString';\n\tvar RegExpPrototype = RegExp.prototype;\n\tvar nativeToString = RegExpPrototype[TO_STRING];\n\n\tvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n\t// FF44- RegExp#toString has a wrong name\n\tvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name != TO_STRING;\n\n\t// `RegExp.prototype.toString` method\n\t// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\n\tif (NOT_GENERIC || INCORRECT_NAME) {\n\t defineBuiltIn(RegExp.prototype, TO_STRING, function toString() {\n\t var R = anObject(this);\n\t var pattern = $toString(R.source);\n\t var flags = $toString(getRegExpFlags(R));\n\t return '/' + pattern + '/' + flags;\n\t }, { unsafe: true });\n\t}\n\treturn es_regexp_toString;\n}\n\nvar lodash_get;\nvar hasRequiredLodash_get;\n\nfunction requireLodash_get () {\n\tif (hasRequiredLodash_get) return lodash_get;\n\thasRequiredLodash_get = 1;\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/** Used to stand-in for `undefined` hash values. */\n\tvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n\t/** Used as references for various `Number` constants. */\n\tvar INFINITY = 1 / 0;\n\n\t/** `Object#toString` result references. */\n\tvar funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]',\n\t symbolTag = '[object Symbol]';\n\n\t/** Used to match property names within property paths. */\n\tvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n\t reIsPlainProp = /^\\w*$/,\n\t reLeadingDot = /^\\./,\n\t rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n\t/**\n\t * Used to match `RegExp`\n\t * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n\t */\n\tvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n\t/** Used to match backslashes in property paths. */\n\tvar reEscapeChar = /\\\\(\\\\)?/g;\n\n\t/** Used to detect host constructors (Safari). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/** Detect free variable `global` from Node.js. */\n\tvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\n\t/** Detect free variable `self`. */\n\tvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n\t/** Used as a reference to the global object. */\n\tvar root = freeGlobal || freeSelf || Function('return this')();\n\n\t/**\n\t * Gets the value at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} [object] The object to query.\n\t * @param {string} key The key of the property to get.\n\t * @returns {*} Returns the property value.\n\t */\n\tfunction getValue(object, key) {\n\t return object == null ? undefined : object[key];\n\t}\n\n\t/**\n\t * Checks if `value` is a host object in IE < 9.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n\t */\n\tfunction isHostObject(value) {\n\t // Many host objects are `Object` objects that can coerce to strings\n\t // despite having improperly defined `toString` methods.\n\t var result = false;\n\t if (value != null && typeof value.toString != 'function') {\n\t try {\n\t result = !!(value + '');\n\t } catch (e) {}\n\t }\n\t return result;\n\t}\n\n\t/** Used for built-in method references. */\n\tvar arrayProto = Array.prototype,\n\t funcProto = Function.prototype,\n\t objectProto = Object.prototype;\n\n\t/** Used to detect overreaching core-js shims. */\n\tvar coreJsData = root['__core-js_shared__'];\n\n\t/** Used to detect methods masquerading as native. */\n\tvar maskSrcKey = (function() {\n\t var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n\t return uid ? ('Symbol(src)_1.' + uid) : '';\n\t}());\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar funcToString = funcProto.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' +\n\t funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n\t .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n\t);\n\n\t/** Built-in value references. */\n\tvar Symbol = root.Symbol,\n\t splice = arrayProto.splice;\n\n\t/* Built-in method references that are verified to be native. */\n\tvar Map = getNative(root, 'Map'),\n\t nativeCreate = getNative(Object, 'create');\n\n\t/** Used to convert symbols to primitives and strings. */\n\tvar symbolProto = Symbol ? Symbol.prototype : undefined,\n\t symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n\t/**\n\t * Creates a hash object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction Hash(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the hash.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf Hash\n\t */\n\tfunction hashClear() {\n\t this.__data__ = nativeCreate ? nativeCreate(null) : {};\n\t}\n\n\t/**\n\t * Removes `key` and its value from the hash.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf Hash\n\t * @param {Object} hash The hash to modify.\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction hashDelete(key) {\n\t return this.has(key) && delete this.__data__[key];\n\t}\n\n\t/**\n\t * Gets the hash value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction hashGet(key) {\n\t var data = this.__data__;\n\t if (nativeCreate) {\n\t var result = data[key];\n\t return result === HASH_UNDEFINED ? undefined : result;\n\t }\n\t return hasOwnProperty.call(data, key) ? data[key] : undefined;\n\t}\n\n\t/**\n\t * Checks if a hash value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf Hash\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction hashHas(key) {\n\t var data = this.__data__;\n\t return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n\t}\n\n\t/**\n\t * Sets the hash `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the hash instance.\n\t */\n\tfunction hashSet(key, value) {\n\t var data = this.__data__;\n\t data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n\t return this;\n\t}\n\n\t// Add methods to `Hash`.\n\tHash.prototype.clear = hashClear;\n\tHash.prototype['delete'] = hashDelete;\n\tHash.prototype.get = hashGet;\n\tHash.prototype.has = hashHas;\n\tHash.prototype.set = hashSet;\n\n\t/**\n\t * Creates an list cache object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction ListCache(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the list cache.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf ListCache\n\t */\n\tfunction listCacheClear() {\n\t this.__data__ = [];\n\t}\n\n\t/**\n\t * Removes `key` and its value from the list cache.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction listCacheDelete(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t if (index < 0) {\n\t return false;\n\t }\n\t var lastIndex = data.length - 1;\n\t if (index == lastIndex) {\n\t data.pop();\n\t } else {\n\t splice.call(data, index, 1);\n\t }\n\t return true;\n\t}\n\n\t/**\n\t * Gets the list cache value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction listCacheGet(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t return index < 0 ? undefined : data[index][1];\n\t}\n\n\t/**\n\t * Checks if a list cache value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf ListCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction listCacheHas(key) {\n\t return assocIndexOf(this.__data__, key) > -1;\n\t}\n\n\t/**\n\t * Sets the list cache `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the list cache instance.\n\t */\n\tfunction listCacheSet(key, value) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t if (index < 0) {\n\t data.push([key, value]);\n\t } else {\n\t data[index][1] = value;\n\t }\n\t return this;\n\t}\n\n\t// Add methods to `ListCache`.\n\tListCache.prototype.clear = listCacheClear;\n\tListCache.prototype['delete'] = listCacheDelete;\n\tListCache.prototype.get = listCacheGet;\n\tListCache.prototype.has = listCacheHas;\n\tListCache.prototype.set = listCacheSet;\n\n\t/**\n\t * Creates a map cache object to store key-value pairs.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction MapCache(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the map.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf MapCache\n\t */\n\tfunction mapCacheClear() {\n\t this.__data__ = {\n\t 'hash': new Hash,\n\t 'map': new (Map || ListCache),\n\t 'string': new Hash\n\t };\n\t}\n\n\t/**\n\t * Removes `key` and its value from the map.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction mapCacheDelete(key) {\n\t return getMapData(this, key)['delete'](key);\n\t}\n\n\t/**\n\t * Gets the map value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction mapCacheGet(key) {\n\t return getMapData(this, key).get(key);\n\t}\n\n\t/**\n\t * Checks if a map value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf MapCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction mapCacheHas(key) {\n\t return getMapData(this, key).has(key);\n\t}\n\n\t/**\n\t * Sets the map `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the map cache instance.\n\t */\n\tfunction mapCacheSet(key, value) {\n\t getMapData(this, key).set(key, value);\n\t return this;\n\t}\n\n\t// Add methods to `MapCache`.\n\tMapCache.prototype.clear = mapCacheClear;\n\tMapCache.prototype['delete'] = mapCacheDelete;\n\tMapCache.prototype.get = mapCacheGet;\n\tMapCache.prototype.has = mapCacheHas;\n\tMapCache.prototype.set = mapCacheSet;\n\n\t/**\n\t * Gets the index at which the `key` is found in `array` of key-value pairs.\n\t *\n\t * @private\n\t * @param {Array} array The array to inspect.\n\t * @param {*} key The key to search for.\n\t * @returns {number} Returns the index of the matched value, else `-1`.\n\t */\n\tfunction assocIndexOf(array, key) {\n\t var length = array.length;\n\t while (length--) {\n\t if (eq(array[length][0], key)) {\n\t return length;\n\t }\n\t }\n\t return -1;\n\t}\n\n\t/**\n\t * The base implementation of `_.get` without support for default values.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {Array|string} path The path of the property to get.\n\t * @returns {*} Returns the resolved value.\n\t */\n\tfunction baseGet(object, path) {\n\t path = isKey(path, object) ? [path] : castPath(path);\n\n\t var index = 0,\n\t length = path.length;\n\n\t while (object != null && index < length) {\n\t object = object[toKey(path[index++])];\n\t }\n\t return (index && index == length) ? object : undefined;\n\t}\n\n\t/**\n\t * The base implementation of `_.isNative` without bad shim checks.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function,\n\t * else `false`.\n\t */\n\tfunction baseIsNative(value) {\n\t if (!isObject(value) || isMasked(value)) {\n\t return false;\n\t }\n\t var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n\t return pattern.test(toSource(value));\n\t}\n\n\t/**\n\t * The base implementation of `_.toString` which doesn't convert nullish\n\t * values to empty strings.\n\t *\n\t * @private\n\t * @param {*} value The value to process.\n\t * @returns {string} Returns the string.\n\t */\n\tfunction baseToString(value) {\n\t // Exit early for strings to avoid a performance hit in some environments.\n\t if (typeof value == 'string') {\n\t return value;\n\t }\n\t if (isSymbol(value)) {\n\t return symbolToString ? symbolToString.call(value) : '';\n\t }\n\t var result = (value + '');\n\t return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n\t}\n\n\t/**\n\t * Casts `value` to a path array if it's not one.\n\t *\n\t * @private\n\t * @param {*} value The value to inspect.\n\t * @returns {Array} Returns the cast property path array.\n\t */\n\tfunction castPath(value) {\n\t return isArray(value) ? value : stringToPath(value);\n\t}\n\n\t/**\n\t * Gets the data for `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to query.\n\t * @param {string} key The reference key.\n\t * @returns {*} Returns the map data.\n\t */\n\tfunction getMapData(map, key) {\n\t var data = map.__data__;\n\t return isKeyable(key)\n\t ? data[typeof key == 'string' ? 'string' : 'hash']\n\t : data.map;\n\t}\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = getValue(object, key);\n\t return baseIsNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Checks if `value` is a property name and not a property path.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @param {Object} [object] The object to query keys on.\n\t * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n\t */\n\tfunction isKey(value, object) {\n\t if (isArray(value)) {\n\t return false;\n\t }\n\t var type = typeof value;\n\t if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n\t value == null || isSymbol(value)) {\n\t return true;\n\t }\n\t return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n\t (object != null && value in Object(object));\n\t}\n\n\t/**\n\t * Checks if `value` is suitable for use as unique object key.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n\t */\n\tfunction isKeyable(value) {\n\t var type = typeof value;\n\t return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n\t ? (value !== '__proto__')\n\t : (value === null);\n\t}\n\n\t/**\n\t * Checks if `func` has its source masked.\n\t *\n\t * @private\n\t * @param {Function} func The function to check.\n\t * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n\t */\n\tfunction isMasked(func) {\n\t return !!maskSrcKey && (maskSrcKey in func);\n\t}\n\n\t/**\n\t * Converts `string` to a property path array.\n\t *\n\t * @private\n\t * @param {string} string The string to convert.\n\t * @returns {Array} Returns the property path array.\n\t */\n\tvar stringToPath = memoize(function(string) {\n\t string = toString(string);\n\n\t var result = [];\n\t if (reLeadingDot.test(string)) {\n\t result.push('');\n\t }\n\t string.replace(rePropName, function(match, number, quote, string) {\n\t result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n\t });\n\t return result;\n\t});\n\n\t/**\n\t * Converts `value` to a string key if it's not a string or symbol.\n\t *\n\t * @private\n\t * @param {*} value The value to inspect.\n\t * @returns {string|symbol} Returns the key.\n\t */\n\tfunction toKey(value) {\n\t if (typeof value == 'string' || isSymbol(value)) {\n\t return value;\n\t }\n\t var result = (value + '');\n\t return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n\t}\n\n\t/**\n\t * Converts `func` to its source code.\n\t *\n\t * @private\n\t * @param {Function} func The function to process.\n\t * @returns {string} Returns the source code.\n\t */\n\tfunction toSource(func) {\n\t if (func != null) {\n\t try {\n\t return funcToString.call(func);\n\t } catch (e) {}\n\t try {\n\t return (func + '');\n\t } catch (e) {}\n\t }\n\t return '';\n\t}\n\n\t/**\n\t * Creates a function that memoizes the result of `func`. If `resolver` is\n\t * provided, it determines the cache key for storing the result based on the\n\t * arguments provided to the memoized function. By default, the first argument\n\t * provided to the memoized function is used as the map cache key. The `func`\n\t * is invoked with the `this` binding of the memoized function.\n\t *\n\t * **Note:** The cache is exposed as the `cache` property on the memoized\n\t * function. Its creation may be customized by replacing the `_.memoize.Cache`\n\t * constructor with one whose instances implement the\n\t * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n\t * method interface of `delete`, `get`, `has`, and `set`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Function\n\t * @param {Function} func The function to have its output memoized.\n\t * @param {Function} [resolver] The function to resolve the cache key.\n\t * @returns {Function} Returns the new memoized function.\n\t * @example\n\t *\n\t * var object = { 'a': 1, 'b': 2 };\n\t * var other = { 'c': 3, 'd': 4 };\n\t *\n\t * var values = _.memoize(_.values);\n\t * values(object);\n\t * // => [1, 2]\n\t *\n\t * values(other);\n\t * // => [3, 4]\n\t *\n\t * object.a = 2;\n\t * values(object);\n\t * // => [1, 2]\n\t *\n\t * // Modify the result cache.\n\t * values.cache.set(object, ['a', 'b']);\n\t * values(object);\n\t * // => ['a', 'b']\n\t *\n\t * // Replace `_.memoize.Cache`.\n\t * _.memoize.Cache = WeakMap;\n\t */\n\tfunction memoize(func, resolver) {\n\t if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t var memoized = function() {\n\t var args = arguments,\n\t key = resolver ? resolver.apply(this, args) : args[0],\n\t cache = memoized.cache;\n\n\t if (cache.has(key)) {\n\t return cache.get(key);\n\t }\n\t var result = func.apply(this, args);\n\t memoized.cache = cache.set(key, result);\n\t return result;\n\t };\n\t memoized.cache = new (memoize.Cache || MapCache);\n\t return memoized;\n\t}\n\n\t// Assign cache to `_.memoize`.\n\tmemoize.Cache = MapCache;\n\n\t/**\n\t * Performs a\n\t * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * comparison between two values to determine if they are equivalent.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to compare.\n\t * @param {*} other The other value to compare.\n\t * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n\t * @example\n\t *\n\t * var object = { 'a': 1 };\n\t * var other = { 'a': 1 };\n\t *\n\t * _.eq(object, object);\n\t * // => true\n\t *\n\t * _.eq(object, other);\n\t * // => false\n\t *\n\t * _.eq('a', 'a');\n\t * // => true\n\t *\n\t * _.eq('a', Object('a'));\n\t * // => false\n\t *\n\t * _.eq(NaN, NaN);\n\t * // => true\n\t */\n\tfunction eq(value, other) {\n\t return value === other || (value !== value && other !== other);\n\t}\n\n\t/**\n\t * Checks if `value` is classified as an `Array` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n\t * @example\n\t *\n\t * _.isArray([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArray(document.body.children);\n\t * // => false\n\t *\n\t * _.isArray('abc');\n\t * // => false\n\t *\n\t * _.isArray(_.noop);\n\t * // => false\n\t */\n\tvar isArray = Array.isArray;\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 8-9 which returns 'object' for typed array and other constructors.\n\t var tag = isObject(value) ? objectToString.call(value) : '';\n\t return tag == funcTag || tag == genTag;\n\t}\n\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/**\n\t * Checks if `value` is classified as a `Symbol` primitive or object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n\t * @example\n\t *\n\t * _.isSymbol(Symbol.iterator);\n\t * // => true\n\t *\n\t * _.isSymbol('abc');\n\t * // => false\n\t */\n\tfunction isSymbol(value) {\n\t return typeof value == 'symbol' ||\n\t (isObjectLike(value) && objectToString.call(value) == symbolTag);\n\t}\n\n\t/**\n\t * Converts `value` to a string. An empty string is returned for `null`\n\t * and `undefined` values. The sign of `-0` is preserved.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to process.\n\t * @returns {string} Returns the string.\n\t * @example\n\t *\n\t * _.toString(null);\n\t * // => ''\n\t *\n\t * _.toString(-0);\n\t * // => '-0'\n\t *\n\t * _.toString([1, 2, 3]);\n\t * // => '1,2,3'\n\t */\n\tfunction toString(value) {\n\t return value == null ? '' : baseToString(value);\n\t}\n\n\t/**\n\t * Gets the value at `path` of `object`. If the resolved value is\n\t * `undefined`, the `defaultValue` is returned in its place.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 3.7.0\n\t * @category Object\n\t * @param {Object} object The object to query.\n\t * @param {Array|string} path The path of the property to get.\n\t * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n\t * @returns {*} Returns the resolved value.\n\t * @example\n\t *\n\t * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n\t *\n\t * _.get(object, 'a[0].b.c');\n\t * // => 3\n\t *\n\t * _.get(object, ['a', '0', 'b', 'c']);\n\t * // => 3\n\t *\n\t * _.get(object, 'a.b.c', 'default');\n\t * // => 'default'\n\t */\n\tfunction get(object, path, defaultValue) {\n\t var result = object == null ? undefined : baseGet(object, path);\n\t return result === undefined ? defaultValue : result;\n\t}\n\n\tlodash_get = get;\n\treturn lodash_get;\n}\n\nvar plurals;\nvar hasRequiredPlurals;\n\nfunction requirePlurals () {\n\tif (hasRequiredPlurals) return plurals;\n\thasRequiredPlurals = 1;\n\n\tplurals = {\n\t ach: {\n\t name: 'Acholi',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n > 1)',\n\t pluralsFunc: function(n) {\n\t return (n > 1);\n\t }\n\t },\n\t af: {\n\t name: 'Afrikaans',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t ak: {\n\t name: 'Akan',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n > 1)',\n\t pluralsFunc: function(n) {\n\t return (n > 1);\n\t }\n\t },\n\t am: {\n\t name: 'Amharic',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n > 1)',\n\t pluralsFunc: function(n) {\n\t return (n > 1);\n\t }\n\t },\n\t an: {\n\t name: 'Aragonese',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t ar: {\n\t name: 'Arabic',\n\t examples: [{\n\t plural: 0,\n\t sample: 0\n\t }, {\n\t plural: 1,\n\t sample: 1\n\t }, {\n\t plural: 2,\n\t sample: 2\n\t }, {\n\t plural: 3,\n\t sample: 3\n\t }, {\n\t plural: 4,\n\t sample: 11\n\t }, {\n\t plural: 5,\n\t sample: 100\n\t }],\n\t nplurals: 6,\n\t pluralsText: 'nplurals = 6; plural = (n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5)',\n\t pluralsFunc: function(n) {\n\t return (n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n\t }\n\t },\n\t arn: {\n\t name: 'Mapudungun',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n > 1)',\n\t pluralsFunc: function(n) {\n\t return (n > 1);\n\t }\n\t },\n\t ast: {\n\t name: 'Asturian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t ay: {\n\t name: 'Aymará',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t az: {\n\t name: 'Azerbaijani',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t be: {\n\t name: 'Belarusian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }, {\n\t plural: 2,\n\t sample: 5\n\t }],\n\t nplurals: 3,\n\t pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',\n\t pluralsFunc: function(n) {\n\t return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n\t }\n\t },\n\t bg: {\n\t name: 'Bulgarian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t bn: {\n\t name: 'Bengali',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t bo: {\n\t name: 'Tibetan',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t br: {\n\t name: 'Breton',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n > 1)',\n\t pluralsFunc: function(n) {\n\t return (n > 1);\n\t }\n\t },\n\t brx: {\n\t name: 'Bodo',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t bs: {\n\t name: 'Bosnian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }, {\n\t plural: 2,\n\t sample: 5\n\t }],\n\t nplurals: 3,\n\t pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',\n\t pluralsFunc: function(n) {\n\t return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n\t }\n\t },\n\t ca: {\n\t name: 'Catalan',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t cgg: {\n\t name: 'Chiga',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t cs: {\n\t name: 'Czech',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }, {\n\t plural: 2,\n\t sample: 5\n\t }],\n\t nplurals: 3,\n\t pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2)',\n\t pluralsFunc: function(n) {\n\t return (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2);\n\t }\n\t },\n\t csb: {\n\t name: 'Kashubian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }, {\n\t plural: 2,\n\t sample: 5\n\t }],\n\t nplurals: 3,\n\t pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',\n\t pluralsFunc: function(n) {\n\t return (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n\t }\n\t },\n\t cy: {\n\t name: 'Welsh',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }, {\n\t plural: 2,\n\t sample: 3\n\t }, {\n\t plural: 3,\n\t sample: 8\n\t }],\n\t nplurals: 4,\n\t pluralsText: 'nplurals = 4; plural = (n === 1 ? 0 : n === 2 ? 1 : (n !== 8 && n !== 11) ? 2 : 3)',\n\t pluralsFunc: function(n) {\n\t return (n === 1 ? 0 : n === 2 ? 1 : (n !== 8 && n !== 11) ? 2 : 3);\n\t }\n\t },\n\t da: {\n\t name: 'Danish',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t de: {\n\t name: 'German',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t doi: {\n\t name: 'Dogri',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t dz: {\n\t name: 'Dzongkha',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t el: {\n\t name: 'Greek',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t en: {\n\t name: 'English',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t eo: {\n\t name: 'Esperanto',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t es: {\n\t name: 'Spanish',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t et: {\n\t name: 'Estonian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t eu: {\n\t name: 'Basque',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t fa: {\n\t name: 'Persian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t ff: {\n\t name: 'Fulah',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t fi: {\n\t name: 'Finnish',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t fil: {\n\t name: 'Filipino',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n > 1)',\n\t pluralsFunc: function(n) {\n\t return (n > 1);\n\t }\n\t },\n\t fo: {\n\t name: 'Faroese',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t fr: {\n\t name: 'French',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n > 1)',\n\t pluralsFunc: function(n) {\n\t return (n > 1);\n\t }\n\t },\n\t fur: {\n\t name: 'Friulian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t fy: {\n\t name: 'Frisian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t ga: {\n\t name: 'Irish',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }, {\n\t plural: 2,\n\t sample: 3\n\t }, {\n\t plural: 3,\n\t sample: 7\n\t }, {\n\t plural: 4,\n\t sample: 11\n\t }],\n\t nplurals: 5,\n\t pluralsText: 'nplurals = 5; plural = (n === 1 ? 0 : n === 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4)',\n\t pluralsFunc: function(n) {\n\t return (n === 1 ? 0 : n === 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n\t }\n\t },\n\t gd: {\n\t name: 'Scottish Gaelic',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }, {\n\t plural: 2,\n\t sample: 3\n\t }, {\n\t plural: 3,\n\t sample: 20\n\t }],\n\t nplurals: 4,\n\t pluralsText: 'nplurals = 4; plural = ((n === 1 || n === 11) ? 0 : (n === 2 || n === 12) ? 1 : (n > 2 && n < 20) ? 2 : 3)',\n\t pluralsFunc: function(n) {\n\t return ((n === 1 || n === 11) ? 0 : (n === 2 || n === 12) ? 1 : (n > 2 && n < 20) ? 2 : 3);\n\t }\n\t },\n\t gl: {\n\t name: 'Galician',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t gu: {\n\t name: 'Gujarati',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t gun: {\n\t name: 'Gun',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n > 1)',\n\t pluralsFunc: function(n) {\n\t return (n > 1);\n\t }\n\t },\n\t ha: {\n\t name: 'Hausa',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t he: {\n\t name: 'Hebrew',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t hi: {\n\t name: 'Hindi',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t hne: {\n\t name: 'Chhattisgarhi',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t hr: {\n\t name: 'Croatian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }, {\n\t plural: 2,\n\t sample: 5\n\t }],\n\t nplurals: 3,\n\t pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',\n\t pluralsFunc: function(n) {\n\t return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n\t }\n\t },\n\t hu: {\n\t name: 'Hungarian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t hy: {\n\t name: 'Armenian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t id: {\n\t name: 'Indonesian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t is: {\n\t name: 'Icelandic',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n % 10 !== 1 || n % 100 === 11)',\n\t pluralsFunc: function(n) {\n\t return (n % 10 !== 1 || n % 100 === 11);\n\t }\n\t },\n\t it: {\n\t name: 'Italian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t ja: {\n\t name: 'Japanese',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t jbo: {\n\t name: 'Lojban',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t jv: {\n\t name: 'Javanese',\n\t examples: [{\n\t plural: 0,\n\t sample: 0\n\t }, {\n\t plural: 1,\n\t sample: 1\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 0)',\n\t pluralsFunc: function(n) {\n\t return (n !== 0);\n\t }\n\t },\n\t ka: {\n\t name: 'Georgian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t kk: {\n\t name: 'Kazakh',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t km: {\n\t name: 'Khmer',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t kn: {\n\t name: 'Kannada',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t ko: {\n\t name: 'Korean',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t ku: {\n\t name: 'Kurdish',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t kw: {\n\t name: 'Cornish',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }, {\n\t plural: 2,\n\t sample: 3\n\t }, {\n\t plural: 3,\n\t sample: 4\n\t }],\n\t nplurals: 4,\n\t pluralsText: 'nplurals = 4; plural = (n === 1 ? 0 : n === 2 ? 1 : n === 3 ? 2 : 3)',\n\t pluralsFunc: function(n) {\n\t return (n === 1 ? 0 : n === 2 ? 1 : n === 3 ? 2 : 3);\n\t }\n\t },\n\t ky: {\n\t name: 'Kyrgyz',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t lb: {\n\t name: 'Letzeburgesch',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t ln: {\n\t name: 'Lingala',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n > 1)',\n\t pluralsFunc: function(n) {\n\t return (n > 1);\n\t }\n\t },\n\t lo: {\n\t name: 'Lao',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t lt: {\n\t name: 'Lithuanian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }, {\n\t plural: 2,\n\t sample: 10\n\t }],\n\t nplurals: 3,\n\t pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',\n\t pluralsFunc: function(n) {\n\t return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n\t }\n\t },\n\t lv: {\n\t name: 'Latvian',\n\t examples: [{\n\t plural: 2,\n\t sample: 0\n\t }, {\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 3,\n\t pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n !== 0 ? 1 : 2)',\n\t pluralsFunc: function(n) {\n\t return (n % 10 === 1 && n % 100 !== 11 ? 0 : n !== 0 ? 1 : 2);\n\t }\n\t },\n\t mai: {\n\t name: 'Maithili',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t mfe: {\n\t name: 'Mauritian Creole',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n > 1)',\n\t pluralsFunc: function(n) {\n\t return (n > 1);\n\t }\n\t },\n\t mg: {\n\t name: 'Malagasy',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n > 1)',\n\t pluralsFunc: function(n) {\n\t return (n > 1);\n\t }\n\t },\n\t mi: {\n\t name: 'Maori',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n > 1)',\n\t pluralsFunc: function(n) {\n\t return (n > 1);\n\t }\n\t },\n\t mk: {\n\t name: 'Macedonian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n === 1 || n % 10 === 1 ? 0 : 1)',\n\t pluralsFunc: function(n) {\n\t return (n === 1 || n % 10 === 1 ? 0 : 1);\n\t }\n\t },\n\t ml: {\n\t name: 'Malayalam',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t mn: {\n\t name: 'Mongolian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t mni: {\n\t name: 'Manipuri',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t mnk: {\n\t name: 'Mandinka',\n\t examples: [{\n\t plural: 0,\n\t sample: 0\n\t }, {\n\t plural: 1,\n\t sample: 1\n\t }, {\n\t plural: 2,\n\t sample: 2\n\t }],\n\t nplurals: 3,\n\t pluralsText: 'nplurals = 3; plural = (n === 0 ? 0 : n === 1 ? 1 : 2)',\n\t pluralsFunc: function(n) {\n\t return (n === 0 ? 0 : n === 1 ? 1 : 2);\n\t }\n\t },\n\t mr: {\n\t name: 'Marathi',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t ms: {\n\t name: 'Malay',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t mt: {\n\t name: 'Maltese',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }, {\n\t plural: 2,\n\t sample: 11\n\t }, {\n\t plural: 3,\n\t sample: 20\n\t }],\n\t nplurals: 4,\n\t pluralsText: 'nplurals = 4; plural = (n === 1 ? 0 : n === 0 || ( n % 100 > 1 && n % 100 < 11) ? 1 : (n % 100 > 10 && n % 100 < 20 ) ? 2 : 3)',\n\t pluralsFunc: function(n) {\n\t return (n === 1 ? 0 : n === 0 || (n % 100 > 1 && n % 100 < 11) ? 1 : (n % 100 > 10 && n % 100 < 20) ? 2 : 3);\n\t }\n\t },\n\t my: {\n\t name: 'Burmese',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t nah: {\n\t name: 'Nahuatl',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t nap: {\n\t name: 'Neapolitan',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t nb: {\n\t name: 'Norwegian Bokmal',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t ne: {\n\t name: 'Nepali',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t nl: {\n\t name: 'Dutch',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t nn: {\n\t name: 'Norwegian Nynorsk',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t no: {\n\t name: 'Norwegian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t nso: {\n\t name: 'Northern Sotho',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t oc: {\n\t name: 'Occitan',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n > 1)',\n\t pluralsFunc: function(n) {\n\t return (n > 1);\n\t }\n\t },\n\t or: {\n\t name: 'Oriya',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t pa: {\n\t name: 'Punjabi',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t pap: {\n\t name: 'Papiamento',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t pl: {\n\t name: 'Polish',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }, {\n\t plural: 2,\n\t sample: 5\n\t }],\n\t nplurals: 3,\n\t pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',\n\t pluralsFunc: function(n) {\n\t return (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n\t }\n\t },\n\t pms: {\n\t name: 'Piemontese',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t ps: {\n\t name: 'Pashto',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t pt: {\n\t name: 'Portuguese',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t rm: {\n\t name: 'Romansh',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t ro: {\n\t name: 'Romanian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }, {\n\t plural: 2,\n\t sample: 20\n\t }],\n\t nplurals: 3,\n\t pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : (n === 0 || (n % 100 > 0 && n % 100 < 20)) ? 1 : 2)',\n\t pluralsFunc: function(n) {\n\t return (n === 1 ? 0 : (n === 0 || (n % 100 > 0 && n % 100 < 20)) ? 1 : 2);\n\t }\n\t },\n\t ru: {\n\t name: 'Russian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }, {\n\t plural: 2,\n\t sample: 5\n\t }],\n\t nplurals: 3,\n\t pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',\n\t pluralsFunc: function(n) {\n\t return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n\t }\n\t },\n\t rw: {\n\t name: 'Kinyarwanda',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t sah: {\n\t name: 'Yakut',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t sat: {\n\t name: 'Santali',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t sco: {\n\t name: 'Scots',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t sd: {\n\t name: 'Sindhi',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t se: {\n\t name: 'Northern Sami',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t si: {\n\t name: 'Sinhala',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t sk: {\n\t name: 'Slovak',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }, {\n\t plural: 2,\n\t sample: 5\n\t }],\n\t nplurals: 3,\n\t pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2)',\n\t pluralsFunc: function(n) {\n\t return (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2);\n\t }\n\t },\n\t sl: {\n\t name: 'Slovenian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }, {\n\t plural: 2,\n\t sample: 3\n\t }, {\n\t plural: 3,\n\t sample: 5\n\t }],\n\t nplurals: 4,\n\t pluralsText: 'nplurals = 4; plural = (n % 100 === 1 ? 0 : n % 100 === 2 ? 1 : n % 100 === 3 || n % 100 === 4 ? 2 : 3)',\n\t pluralsFunc: function(n) {\n\t return (n % 100 === 1 ? 0 : n % 100 === 2 ? 1 : n % 100 === 3 || n % 100 === 4 ? 2 : 3);\n\t }\n\t },\n\t so: {\n\t name: 'Somali',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t son: {\n\t name: 'Songhay',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t sq: {\n\t name: 'Albanian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t sr: {\n\t name: 'Serbian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }, {\n\t plural: 2,\n\t sample: 5\n\t }],\n\t nplurals: 3,\n\t pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',\n\t pluralsFunc: function(n) {\n\t return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n\t }\n\t },\n\t su: {\n\t name: 'Sundanese',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t sv: {\n\t name: 'Swedish',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t sw: {\n\t name: 'Swahili',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t ta: {\n\t name: 'Tamil',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t te: {\n\t name: 'Telugu',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t tg: {\n\t name: 'Tajik',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n > 1)',\n\t pluralsFunc: function(n) {\n\t return (n > 1);\n\t }\n\t },\n\t th: {\n\t name: 'Thai',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t ti: {\n\t name: 'Tigrinya',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n > 1)',\n\t pluralsFunc: function(n) {\n\t return (n > 1);\n\t }\n\t },\n\t tk: {\n\t name: 'Turkmen',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t tr: {\n\t name: 'Turkish',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n > 1)',\n\t pluralsFunc: function(n) {\n\t return (n > 1);\n\t }\n\t },\n\t tt: {\n\t name: 'Tatar',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t ug: {\n\t name: 'Uyghur',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t uk: {\n\t name: 'Ukrainian',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }, {\n\t plural: 2,\n\t sample: 5\n\t }],\n\t nplurals: 3,\n\t pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',\n\t pluralsFunc: function(n) {\n\t return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n\t }\n\t },\n\t ur: {\n\t name: 'Urdu',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t uz: {\n\t name: 'Uzbek',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n > 1)',\n\t pluralsFunc: function(n) {\n\t return (n > 1);\n\t }\n\t },\n\t vi: {\n\t name: 'Vietnamese',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t wa: {\n\t name: 'Walloon',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n > 1)',\n\t pluralsFunc: function(n) {\n\t return (n > 1);\n\t }\n\t },\n\t wo: {\n\t name: 'Wolof',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t },\n\t yo: {\n\t name: 'Yoruba',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }, {\n\t plural: 1,\n\t sample: 2\n\t }],\n\t nplurals: 2,\n\t pluralsText: 'nplurals = 2; plural = (n !== 1)',\n\t pluralsFunc: function(n) {\n\t return (n !== 1);\n\t }\n\t },\n\t zh: {\n\t name: 'Chinese',\n\t examples: [{\n\t plural: 0,\n\t sample: 1\n\t }],\n\t nplurals: 1,\n\t pluralsText: 'nplurals = 1; plural = 0',\n\t pluralsFunc: function() {\n\t return 0;\n\t }\n\t }\n\t};\n\treturn plurals;\n}\n\nvar gettext;\nvar hasRequiredGettext$1;\n\nfunction requireGettext$1 () {\n\tif (hasRequiredGettext$1) return gettext;\n\thasRequiredGettext$1 = 1;\n\n\tvar get = requireLodash_get();\n\tvar plurals = requirePlurals();\n\n\tgettext = Gettext;\n\n\t/**\n\t * Creates and returns a new Gettext instance.\n\t *\n\t * @constructor\n\t * @param {Object} [options] A set of options\n\t * @param {String} options.sourceLocale The locale that the source code and its\n\t * texts are written in. Translations for\n\t * this locale is not necessary.\n\t * @param {Boolean} options.debug Whether to output debug info into the\n\t * console.\n\t * @return {Object} A Gettext instance\n\t */\n\tfunction Gettext(options) {\n\t options = options || {};\n\n\t this.catalogs = {};\n\t this.locale = '';\n\t this.domain = 'messages';\n\n\t this.listeners = [];\n\n\t // Set source locale\n\t this.sourceLocale = '';\n\t if (options.sourceLocale) {\n\t if (typeof options.sourceLocale === 'string') {\n\t this.sourceLocale = options.sourceLocale;\n\t }\n\t else {\n\t this.warn('The `sourceLocale` option should be a string');\n\t }\n\t }\n\n\t // Set debug flag\n\t this.debug = 'debug' in options && options.debug === true;\n\t}\n\n\t/**\n\t * Adds an event listener.\n\t *\n\t * @param {String} eventName An event name\n\t * @param {Function} callback An event handler function\n\t */\n\tGettext.prototype.on = function(eventName, callback) {\n\t this.listeners.push({\n\t eventName: eventName,\n\t callback: callback\n\t });\n\t};\n\n\t/**\n\t * Removes an event listener.\n\t *\n\t * @param {String} eventName An event name\n\t * @param {Function} callback A previously registered event handler function\n\t */\n\tGettext.prototype.off = function(eventName, callback) {\n\t this.listeners = this.listeners.filter(function(listener) {\n\t return (\n\t listener.eventName === eventName &&\n\t listener.callback === callback\n\t ) === false;\n\t });\n\t};\n\n\t/**\n\t * Emits an event to all registered event listener.\n\t *\n\t * @private\n\t * @param {String} eventName An event name\n\t * @param {any} eventData Data to pass to event listeners\n\t */\n\tGettext.prototype.emit = function(eventName, eventData) {\n\t for (var i = 0; i < this.listeners.length; i++) {\n\t var listener = this.listeners[i];\n\t if (listener.eventName === eventName) {\n\t listener.callback(eventData);\n\t }\n\t }\n\t};\n\n\t/**\n\t * Logs a warning to the console if debug mode is enabled.\n\t *\n\t * @ignore\n\t * @param {String} message A warning message\n\t */\n\tGettext.prototype.warn = function(message) {\n\t if (this.debug) {\n\t console.warn(message);\n\t }\n\n\t this.emit('error', new Error(message));\n\t};\n\n\t/**\n\t * Stores a set of translations in the set of gettext\n\t * catalogs.\n\t *\n\t * @example\n\t * gt.addTranslations('sv-SE', 'messages', translationsObject)\n\t *\n\t * @param {String} locale A locale string\n\t * @param {String} domain A domain name\n\t * @param {Object} translations An object of gettext-parser JSON shape\n\t */\n\tGettext.prototype.addTranslations = function(locale, domain, translations) {\n\t if (!this.catalogs[locale]) {\n\t this.catalogs[locale] = {};\n\t }\n\n\t this.catalogs[locale][domain] = translations;\n\t};\n\n\t/**\n\t * Sets the locale to get translated messages for.\n\t *\n\t * @example\n\t * gt.setLocale('sv-SE')\n\t *\n\t * @param {String} locale A locale\n\t */\n\tGettext.prototype.setLocale = function(locale) {\n\t if (typeof locale !== 'string') {\n\t this.warn(\n\t 'You called setLocale() with an argument of type ' + (typeof locale) + '. ' +\n\t 'The locale must be a string.'\n\t );\n\t return;\n\t }\n\n\t if (locale.trim() === '') {\n\t this.warn('You called setLocale() with an empty value, which makes little sense.');\n\t }\n\n\t if (locale !== this.sourceLocale && !this.catalogs[locale]) {\n\t this.warn('You called setLocale() with \"' + locale + '\", but no translations for that locale has been added.');\n\t }\n\n\t this.locale = locale;\n\t};\n\n\t/**\n\t * Sets the default gettext domain.\n\t *\n\t * @example\n\t * gt.setTextDomain('domainname')\n\t *\n\t * @param {String} domain A gettext domain name\n\t */\n\tGettext.prototype.setTextDomain = function(domain) {\n\t if (typeof domain !== 'string') {\n\t this.warn(\n\t 'You called setTextDomain() with an argument of type ' + (typeof domain) + '. ' +\n\t 'The domain must be a string.'\n\t );\n\t return;\n\t }\n\n\t if (domain.trim() === '') {\n\t this.warn('You called setTextDomain() with an empty `domain` value.');\n\t }\n\n\t this.domain = domain;\n\t};\n\n\t/**\n\t * Translates a string using the default textdomain\n\t *\n\t * @example\n\t * gt.gettext('Some text')\n\t *\n\t * @param {String} msgid String to be translated\n\t * @return {String} Translation or the original string if no translation was found\n\t */\n\tGettext.prototype.gettext = function(msgid) {\n\t return this.dnpgettext(this.domain, '', msgid);\n\t};\n\n\t/**\n\t * Translates a string using a specific domain\n\t *\n\t * @example\n\t * gt.dgettext('domainname', 'Some text')\n\t *\n\t * @param {String} domain A gettext domain name\n\t * @param {String} msgid String to be translated\n\t * @return {String} Translation or the original string if no translation was found\n\t */\n\tGettext.prototype.dgettext = function(domain, msgid) {\n\t return this.dnpgettext(domain, '', msgid);\n\t};\n\n\t/**\n\t * Translates a plural string using the default textdomain\n\t *\n\t * @example\n\t * gt.ngettext('One thing', 'Many things', numberOfThings)\n\t *\n\t * @param {String} msgid String to be translated when count is not plural\n\t * @param {String} msgidPlural String to be translated when count is plural\n\t * @param {Number} count Number count for the plural\n\t * @return {String} Translation or the original string if no translation was found\n\t */\n\tGettext.prototype.ngettext = function(msgid, msgidPlural, count) {\n\t return this.dnpgettext(this.domain, '', msgid, msgidPlural, count);\n\t};\n\n\t/**\n\t * Translates a plural string using a specific textdomain\n\t *\n\t * @example\n\t * gt.dngettext('domainname', 'One thing', 'Many things', numberOfThings)\n\t *\n\t * @param {String} domain A gettext domain name\n\t * @param {String} msgid String to be translated when count is not plural\n\t * @param {String} msgidPlural String to be translated when count is plural\n\t * @param {Number} count Number count for the plural\n\t * @return {String} Translation or the original string if no translation was found\n\t */\n\tGettext.prototype.dngettext = function(domain, msgid, msgidPlural, count) {\n\t return this.dnpgettext(domain, '', msgid, msgidPlural, count);\n\t};\n\n\t/**\n\t * Translates a string from a specific context using the default textdomain\n\t *\n\t * @example\n\t * gt.pgettext('sports', 'Back')\n\t *\n\t * @param {String} msgctxt Translation context\n\t * @param {String} msgid String to be translated\n\t * @return {String} Translation or the original string if no translation was found\n\t */\n\tGettext.prototype.pgettext = function(msgctxt, msgid) {\n\t return this.dnpgettext(this.domain, msgctxt, msgid);\n\t};\n\n\t/**\n\t * Translates a string from a specific context using s specific textdomain\n\t *\n\t * @example\n\t * gt.dpgettext('domainname', 'sports', 'Back')\n\t *\n\t * @param {String} domain A gettext domain name\n\t * @param {String} msgctxt Translation context\n\t * @param {String} msgid String to be translated\n\t * @return {String} Translation or the original string if no translation was found\n\t */\n\tGettext.prototype.dpgettext = function(domain, msgctxt, msgid) {\n\t return this.dnpgettext(domain, msgctxt, msgid);\n\t};\n\n\t/**\n\t * Translates a plural string from a specific context using the default textdomain\n\t *\n\t * @example\n\t * gt.npgettext('sports', 'Back', '%d backs', numberOfBacks)\n\t *\n\t * @param {String} msgctxt Translation context\n\t * @param {String} msgid String to be translated when count is not plural\n\t * @param {String} msgidPlural String to be translated when count is plural\n\t * @param {Number} count Number count for the plural\n\t * @return {String} Translation or the original string if no translation was found\n\t */\n\tGettext.prototype.npgettext = function(msgctxt, msgid, msgidPlural, count) {\n\t return this.dnpgettext(this.domain, msgctxt, msgid, msgidPlural, count);\n\t};\n\n\t/**\n\t * Translates a plural string from a specifi context using a specific textdomain\n\t *\n\t * @example\n\t * gt.dnpgettext('domainname', 'sports', 'Back', '%d backs', numberOfBacks)\n\t *\n\t * @param {String} domain A gettext domain name\n\t * @param {String} msgctxt Translation context\n\t * @param {String} msgid String to be translated\n\t * @param {String} msgidPlural If no translation was found, return this on count!=1\n\t * @param {Number} count Number count for the plural\n\t * @return {String} Translation or the original string if no translation was found\n\t */\n\tGettext.prototype.dnpgettext = function(domain, msgctxt, msgid, msgidPlural, count) {\n\t var defaultTranslation = msgid;\n\t var translation;\n\t var index;\n\n\t msgctxt = msgctxt || '';\n\n\t if (!isNaN(count) && count !== 1) {\n\t defaultTranslation = msgidPlural || msgid;\n\t }\n\n\t translation = this._getTranslation(domain, msgctxt, msgid);\n\n\t if (translation) {\n\t if (typeof count === 'number') {\n\t var pluralsFunc = plurals[Gettext.getLanguageCode(this.locale)].pluralsFunc;\n\t index = pluralsFunc(count);\n\t if (typeof index === 'boolean') {\n\t index = index ? 1 : 0;\n\t }\n\t } else {\n\t index = 0;\n\t }\n\n\t return translation.msgstr[index] || defaultTranslation;\n\t }\n\t else if (!this.sourceLocale || this.locale !== this.sourceLocale) {\n\t this.warn('No translation was found for msgid \"' + msgid + '\" in msgctxt \"' + msgctxt + '\" and domain \"' + domain + '\"');\n\t }\n\n\t return defaultTranslation;\n\t};\n\n\t/**\n\t * Retrieves comments object for a translation. The comments object\n\t * has the shape `{ translator, extracted, reference, flag, previous }`.\n\t *\n\t * @example\n\t * const comment = gt.getComment('domainname', 'sports', 'Backs')\n\t *\n\t * @private\n\t * @param {String} domain A gettext domain name\n\t * @param {String} msgctxt Translation context\n\t * @param {String} msgid String to be translated\n\t * @return {Object} Comments object or false if not found\n\t */\n\tGettext.prototype.getComment = function(domain, msgctxt, msgid) {\n\t var translation;\n\n\t translation = this._getTranslation(domain, msgctxt, msgid);\n\t if (translation) {\n\t return translation.comments || {};\n\t }\n\n\t return {};\n\t};\n\n\t/**\n\t * Retrieves translation object from the domain and context\n\t *\n\t * @private\n\t * @param {String} domain A gettext domain name\n\t * @param {String} msgctxt Translation context\n\t * @param {String} msgid String to be translated\n\t * @return {Object} Translation object or false if not found\n\t */\n\tGettext.prototype._getTranslation = function(domain, msgctxt, msgid) {\n\t msgctxt = msgctxt || '';\n\n\t return get(this.catalogs, [this.locale, domain, 'translations', msgctxt, msgid]);\n\t};\n\n\t/**\n\t * Returns the language code part of a locale\n\t *\n\t * @example\n\t * Gettext.getLanguageCode('sv-SE')\n\t * // -> \"sv\"\n\t *\n\t * @private\n\t * @param {String} locale A case-insensitive locale string\n\t * @returns {String} A language code\n\t */\n\tGettext.getLanguageCode = function(locale) {\n\t return locale.split(/[\\-_]/)[0].toLowerCase();\n\t};\n\n\t/* C-style aliases */\n\n\t/**\n\t * C-style alias for [setTextDomain](#gettextsettextdomaindomain)\n\t *\n\t * @see Gettext#setTextDomain\n\t */\n\tGettext.prototype.textdomain = function(domain) {\n\t if (this.debug) {\n\t console.warn('textdomain(domain) was used to set locales in node-gettext v1. ' +\n\t 'Make sure you are using it for domains, and switch to setLocale(locale) if you are not.\\n\\n ' +\n\t 'To read more about the migration from node-gettext v1 to v2, ' +\n\t 'see https://github.com/alexanderwallin/node-gettext/#migrating-from-1x-to-2x\\n\\n' +\n\t 'This warning will be removed in the final 2.0.0');\n\t }\n\n\t this.setTextDomain(domain);\n\t};\n\n\t/**\n\t * C-style alias for [setLocale](#gettextsetlocalelocale)\n\t *\n\t * @see Gettext#setLocale\n\t */\n\tGettext.prototype.setlocale = function(locale) {\n\t this.setLocale(locale);\n\t};\n\n\t/* Deprecated functions */\n\n\t/**\n\t * This function will be removed in the final 2.0.0 release.\n\t *\n\t * @deprecated\n\t */\n\tGettext.prototype.addTextdomain = function() {\n\t console.error('addTextdomain() is deprecated.\\n\\n' +\n\t '* To add translations, use addTranslations()\\n' +\n\t '* To set the default domain, use setTextDomain() (or its alias textdomain())\\n' +\n\t '\\n' +\n\t 'To read more about the migration from node-gettext v1 to v2, ' +\n\t 'see https://github.com/alexanderwallin/node-gettext/#migrating-from-1x-to-2x');\n\t};\n\treturn gettext;\n}\n\nvar dist = {};\n\nvar hasRequiredDist;\n\nfunction requireDist () {\n\tif (hasRequiredDist) return dist;\n\thasRequiredDist = 1;\n\n\trequireEs_object_defineProperty();\n\n\tObject.defineProperty(dist, \"__esModule\", {\n\t value: true\n\t});\n\tdist.getCanonicalLocale = getCanonicalLocale;\n\tdist.getDayNames = getDayNames;\n\tdist.getDayNamesMin = getDayNamesMin;\n\tdist.getDayNamesShort = getDayNamesShort;\n\tdist.getFirstDay = getFirstDay;\n\tdist.getLanguage = getLanguage;\n\tdist.getLocale = getLocale;\n\tdist.getMonthNames = getMonthNames;\n\tdist.getMonthNamesShort = getMonthNamesShort;\n\tdist.translate = translate;\n\tdist.translatePlural = translatePlural;\n\n\trequireEs_regexp_exec();\n\n\trequireEs_string_replace();\n\n\t/// <reference types=\"@nextcloud/typings\" />\n\n\t/**\n\t * Returns the user's locale\n\t */\n\tfunction getLocale() {\n\t return document.documentElement.dataset.locale || 'en';\n\t}\n\n\tfunction getCanonicalLocale() {\n\t return getLocale().replace(/_/g, '-');\n\t}\n\t/**\n\t * Returns the user's language\n\t */\n\n\n\tfunction getLanguage() {\n\t return document.documentElement.lang || 'en';\n\t}\n\n\t/**\n\t * Translate a string\n\t *\n\t * @param {string} app the id of the app for which to translate the string\n\t * @param {string} text the string to translate\n\t * @param {object} vars map of placeholder key to value\n\t * @param {number} number to replace %n with\n\t * @param {object} [options] options object\n\t * @return {string}\n\t */\n\tfunction translate(app, text, vars, count, options) {\n\t if (typeof OC === 'undefined') {\n\t console.warn('No OC found');\n\t return text;\n\t }\n\n\t return OC.L10N.translate(app, text, vars, count, options);\n\t}\n\t/**\n\t * Translate a plural string\n\t *\n\t * @param {string} app the id of the app for which to translate the string\n\t * @param {string} textSingular the string to translate for exactly one object\n\t * @param {string} textPlural the string to translate for n objects\n\t * @param {number} count number to determine whether to use singular or plural\n\t * @param {Object} vars of placeholder key to value\n\t * @param {object} options options object\n\t * @return {string}\n\t */\n\n\n\tfunction translatePlural(app, textSingular, textPlural, count, vars, options) {\n\t if (typeof OC === 'undefined') {\n\t console.warn('No OC found');\n\t return textSingular;\n\t }\n\n\t return OC.L10N.translatePlural(app, textSingular, textPlural, count, vars, options);\n\t}\n\t/**\n\t * Get the first day of the week\n\t *\n\t * @return {number}\n\t */\n\n\n\tfunction getFirstDay() {\n\t if (typeof window.firstDay === 'undefined') {\n\t console.warn('No firstDay found');\n\t return 1;\n\t }\n\n\t return window.firstDay;\n\t}\n\t/**\n\t * Get a list of day names (full names)\n\t *\n\t * @return {string[]}\n\t */\n\n\n\tfunction getDayNames() {\n\t if (typeof window.dayNames === 'undefined') {\n\t console.warn('No dayNames found');\n\t return ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n\t }\n\n\t return window.dayNames;\n\t}\n\t/**\n\t * Get a list of day names (short names)\n\t *\n\t * @return {string[]}\n\t */\n\n\n\tfunction getDayNamesShort() {\n\t if (typeof window.dayNamesShort === 'undefined') {\n\t console.warn('No dayNamesShort found');\n\t return ['Sun.', 'Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.'];\n\t }\n\n\t return window.dayNamesShort;\n\t}\n\t/**\n\t * Get a list of day names (minified names)\n\t *\n\t * @return {string[]}\n\t */\n\n\n\tfunction getDayNamesMin() {\n\t if (typeof window.dayNamesMin === 'undefined') {\n\t console.warn('No dayNamesMin found');\n\t return ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n\t }\n\n\t return window.dayNamesMin;\n\t}\n\t/**\n\t * Get a list of month names (full names)\n\t *\n\t * @return {string[]}\n\t */\n\n\n\tfunction getMonthNames() {\n\t if (typeof window.monthNames === 'undefined') {\n\t console.warn('No monthNames found');\n\t return ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n\t }\n\n\t return window.monthNames;\n\t}\n\t/**\n\t * Get a list of month names (short names)\n\t *\n\t * @return {string[]}\n\t */\n\n\n\tfunction getMonthNamesShort() {\n\t if (typeof window.monthNamesShort === 'undefined') {\n\t console.warn('No monthNamesShort found');\n\t return ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.'];\n\t }\n\n\t return window.monthNamesShort;\n\t}\n\t\n\treturn dist;\n}\n\nvar hasRequiredGettext;\n\nfunction requireGettext () {\n\tif (hasRequiredGettext) return gettext$1;\n\thasRequiredGettext = 1;\n\n\tObject.defineProperty(gettext$1, \"__esModule\", {\n\t value: true\n\t});\n\tgettext$1.getGettextBuilder = getGettextBuilder;\n\n\trequireEs_regexp_exec();\n\n\trequireEs_string_replace();\n\n\trequireEs_object_defineProperty();\n\n\trequireEs_object_toString();\n\n\trequireEs_regexp_toString();\n\n\tvar _nodeGettext = _interopRequireDefault(requireGettext$1());\n\n\tvar _ = requireDist();\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\tfunction _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\n\tfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\tvar GettextBuilder = /*#__PURE__*/function () {\n\t function GettextBuilder() {\n\t _classCallCheck(this, GettextBuilder);\n\n\t this.translations = {};\n\t this.debug = false;\n\t }\n\n\t _createClass(GettextBuilder, [{\n\t key: \"setLanguage\",\n\t value: function setLanguage(language) {\n\t this.locale = language;\n\t return this;\n\t }\n\t }, {\n\t key: \"detectLocale\",\n\t value: function detectLocale() {\n\t return this.setLanguage((0, _.getLanguage)().replace('-', '_'));\n\t }\n\t }, {\n\t key: \"addTranslation\",\n\t value: function addTranslation(language, data) {\n\t this.translations[language] = data;\n\t return this;\n\t }\n\t }, {\n\t key: \"enableDebugMode\",\n\t value: function enableDebugMode() {\n\t this.debug = true;\n\t return this;\n\t }\n\t }, {\n\t key: \"build\",\n\t value: function build() {\n\t return new GettextWrapper(this.locale || 'en', this.translations, this.debug);\n\t }\n\t }]);\n\n\t return GettextBuilder;\n\t}();\n\n\tvar GettextWrapper = /*#__PURE__*/function () {\n\t function GettextWrapper(locale, data, debug) {\n\t _classCallCheck(this, GettextWrapper);\n\n\t this.gt = new _nodeGettext.default({\n\t debug: debug,\n\t sourceLocale: 'en'\n\t });\n\n\t for (var key in data) {\n\t this.gt.addTranslations(key, 'messages', data[key]);\n\t }\n\n\t this.gt.setLocale(locale);\n\t }\n\n\t _createClass(GettextWrapper, [{\n\t key: \"subtitudePlaceholders\",\n\t value: function subtitudePlaceholders(translated, vars) {\n\t return translated.replace(/{([^{}]*)}/g, function (a, b) {\n\t var r = vars[b];\n\n\t if (typeof r === 'string' || typeof r === 'number') {\n\t return r.toString();\n\t } else {\n\t return a;\n\t }\n\t });\n\t }\n\t }, {\n\t key: \"gettext\",\n\t value: function gettext(original) {\n\t var placeholders = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\t return this.subtitudePlaceholders(this.gt.gettext(original), placeholders);\n\t }\n\t }, {\n\t key: \"ngettext\",\n\t value: function ngettext(singular, plural, count) {\n\t var placeholders = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\t return this.subtitudePlaceholders(this.gt.ngettext(singular, plural, count).replace(/%n/g, count.toString()), placeholders);\n\t }\n\t }]);\n\n\t return GettextWrapper;\n\t}();\n\n\tfunction getGettextBuilder() {\n\t return new GettextBuilder();\n\t}\n\t\n\treturn gettext$1;\n}\n\nfunction getBasePlacement(placement) {\n return placement.split('-')[0];\n}\n\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\n\nfunction getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].includes(getBasePlacement(placement)) ? 'x' : 'y';\n}\n\nfunction getLengthFromAxis(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\n\nfunction computeCoordsFromPlacement(_ref) {\n let {\n reference,\n floating,\n placement\n } = _ref;\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n let coords;\n\n switch (getBasePlacement(placement)) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n\n switch (getAlignment(placement)) {\n case 'start':\n coords[mainAxis] = coords[mainAxis] - (reference[length] / 2 - floating[length] / 2);\n break;\n\n case 'end':\n coords[mainAxis] = coords[mainAxis] + (reference[length] / 2 - floating[length] / 2);\n break;\n }\n\n return coords;\n}\n\nconst computePosition$1 = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n\n if (process.env.NODE_ENV !== \"production\") {\n if (platform == null) {\n console.error(['Floating UI: `platform` property was not passed to config. If you', 'want to use Floating UI on the web, install @floating-ui/dom', 'instead of the /core package. Otherwise, you can create your own', '`platform`: https://floating-ui.com/docs/platform'].join(' '));\n }\n\n if (middleware.filter(_ref => {\n let {\n name\n } = _ref;\n return name === 'autoPlacement' || name === 'flip';\n }).length > 1) {\n throw new Error(['Floating UI: duplicate `flip` and/or `autoPlacement`', 'middleware detected. This will lead to an infinite loop. Ensure only', 'one of either has been passed to the `middleware` array.'].join(' '));\n }\n }\n\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement({ ...rects,\n placement\n });\n let statefulPlacement = placement;\n let middlewareData = {};\n let _debug_loop_count_ = 0;\n\n for (let i = 0; i < middleware.length; i++) {\n if (process.env.NODE_ENV !== \"production\") {\n _debug_loop_count_++;\n\n if (_debug_loop_count_ > 100) {\n throw new Error(['Floating UI: The middleware lifecycle appears to be', 'running in an infinite loop. This is usually caused by a `reset`', 'continually being returned without a break condition.'].join(' '));\n }\n }\n\n const {\n name,\n fn\n } = middleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = { ...middlewareData,\n [name]: data != null ? data : {}\n };\n\n if (reset) {\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n\n ({\n x,\n y\n } = computeCoordsFromPlacement({ ...rects,\n placement: statefulPlacement\n }));\n }\n\n i = -1;\n continue;\n }\n }\n\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\n\nfunction getSideObjectFromPadding(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\n\nfunction rectToClientRect(rect) {\n return { ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\nasync function detectOverflow(middlewareArguments, options) {\n if (options === void 0) {\n options = {};\n }\n\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = middlewareArguments;\n const {\n boundary = 'clippingParents',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = options;\n const paddingObject = getSideObjectFromPadding(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = await platform.getClippingClientRect({\n element: (await platform.isElement(element)) ? element : element.contextElement || (await platform.getDocumentElement({\n element: elements.floating\n })),\n boundary,\n rootBoundary\n });\n const elementClientRect = rectToClientRect(await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect: elementContext === 'floating' ? { ...rects.floating,\n x,\n y\n } : rects.reference,\n offsetParent: await platform.getOffsetParent({\n element: elements.floating\n }),\n strategy\n })); // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n return {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n}\n\nconst min$1 = Math.min;\nconst max$1 = Math.max;\n\nfunction within(min$1$1, value, max$1$1) {\n return max$1(min$1$1, min$1(value, max$1$1));\n}\n\nconst arrow = options => ({\n name: 'arrow',\n options,\n\n async fn(middlewareArguments) {\n // Since `element` is required, we don't Partial<> the type\n const {\n element,\n padding = 0\n } = options != null ? options : {};\n const {\n x,\n y,\n placement,\n rects,\n platform\n } = middlewareArguments;\n\n if (element == null) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn('Floating UI: No `element` was passed to the `arrow` middleware.');\n }\n\n return {};\n }\n\n const paddingObject = getSideObjectFromPadding(padding);\n const coords = {\n x,\n y\n };\n const basePlacement = getBasePlacement(placement);\n const axis = getMainAxisFromPlacement(basePlacement);\n const length = getLengthFromAxis(axis);\n const arrowDimensions = await platform.getDimensions({\n element\n });\n const minProp = axis === 'y' ? 'top' : 'left';\n const maxProp = axis === 'y' ? 'bottom' : 'right';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await platform.getOffsetParent({\n element\n });\n const clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n const centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside of the floating element's bounds\n\n const min = paddingObject[minProp];\n const max = clientSize - arrowDimensions[length] - paddingObject[maxProp];\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = within(min, center, max);\n return {\n data: {\n [axis]: offset,\n centerOffset: center - offset\n }\n };\n }\n\n});\n\nconst hash$1 = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, matched => hash$1[matched]);\n}\n\nfunction getAlignmentSides(placement, rects) {\n const isStart = getAlignment(placement) === 'start';\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n let mainAlignmentSide = mainAxis === 'x' ? isStart ? 'right' : 'left' : isStart ? 'bottom' : 'top';\n\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n\n return {\n main: mainAlignmentSide,\n cross: getOppositePlacement(mainAlignmentSide)\n };\n}\n\nconst hash = {\n start: 'end',\n end: 'start'\n};\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, matched => hash[matched]);\n}\n\nconst basePlacements = ['top', 'right', 'bottom', 'left'];\nconst allPlacements = /*#__PURE__*/basePlacements.reduce((acc, basePlacement) => acc.concat(basePlacement, basePlacement + \"-start\", basePlacement + \"-end\"), []);\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getBasePlacement(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n\n return true;\n });\n}\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'autoPlacement',\n options,\n\n async fn(middlewareArguments) {\n var _middlewareData$autoP, _middlewareData$autoP2, _middlewareData$autoP3, _middlewareData$autoP4, _middlewareData$autoP5, _placementsSortedByLe;\n\n const {\n x,\n y,\n rects,\n middlewareData,\n placement\n } = middlewareArguments;\n const {\n alignment = null,\n allowedPlacements = allPlacements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = options;\n\n if ((_middlewareData$autoP = middlewareData.autoPlacement) != null && _middlewareData$autoP.skip) {\n return {};\n }\n\n const placements = getPlacementList(alignment, autoAlignment, allowedPlacements);\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const currentIndex = (_middlewareData$autoP2 = (_middlewareData$autoP3 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP3.index) != null ? _middlewareData$autoP2 : 0;\n const currentPlacement = placements[currentIndex];\n const {\n main,\n cross\n } = getAlignmentSides(currentPlacement, rects); // Make `computeCoords` start from the right place\n\n if (placement !== currentPlacement) {\n return {\n x,\n y,\n reset: {\n placement: placements[0]\n }\n };\n }\n\n const currentOverflows = [overflow[getBasePlacement(currentPlacement)], overflow[main], overflow[cross]];\n const allOverflows = [...((_middlewareData$autoP4 = (_middlewareData$autoP5 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP5.overflows) != null ? _middlewareData$autoP4 : []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements[currentIndex + 1]; // There are more placements to check\n\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n const placementsSortedByLeastOverflow = allOverflows.slice().sort((a, b) => a.overflows[0] - b.overflows[0]);\n const placementThatFitsOnAllSides = (_placementsSortedByLe = placementsSortedByLeastOverflow.find(_ref => {\n let {\n overflows\n } = _ref;\n return overflows.every(overflow => overflow <= 0);\n })) == null ? void 0 : _placementsSortedByLe.placement;\n return {\n data: {\n skip: true\n },\n reset: {\n placement: placementThatFitsOnAllSides != null ? placementThatFitsOnAllSides : placementsSortedByLeastOverflow[0].placement\n }\n };\n }\n\n };\n};\n\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\n\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'flip',\n options,\n\n async fn(middlewareArguments) {\n var _middlewareData$flip, _middlewareData$flip2;\n\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement\n } = middlewareArguments;\n\n if ((_middlewareData$flip = middlewareData.flip) != null && _middlewareData$flip.skip) {\n return {};\n }\n\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n flipAlignment = true,\n ...detectOverflowOptions\n } = options;\n const basePlacement = getBasePlacement(placement);\n const isBasePlacement = basePlacement === initialPlacement;\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.overflows) || [];\n\n if (checkMainAxis) {\n overflows.push(overflow[basePlacement]);\n }\n\n if (checkCrossAxis) {\n const {\n main,\n cross\n } = getAlignmentSides(placement, rects);\n overflows.push(overflow[main], overflow[cross]);\n }\n\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }]; // One or more sides is overflowing\n\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip$, _middlewareData$flip3;\n\n const nextIndex = ((_middlewareData$flip$ = (_middlewareData$flip3 = middlewareData.flip) == null ? void 0 : _middlewareData$flip3.index) != null ? _middlewareData$flip$ : 0) + 1;\n const nextPlacement = placements[nextIndex];\n\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n let resetPlacement = 'bottom';\n\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$slice$;\n\n const placement = (_overflowsData$slice$ = overflowsData.slice().sort((a, b) => a.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0) - b.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0))[0]) == null ? void 0 : _overflowsData$slice$.placement;\n\n if (placement) {\n resetPlacement = placement;\n }\n\n break;\n }\n\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n\n return {\n data: {\n skip: true\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n\n return {};\n }\n\n };\n};\n\nfunction convertValueToCoords(_ref) {\n let {\n placement,\n rects,\n value\n } = _ref;\n const basePlacement = getBasePlacement(placement);\n const multiplier = ['left', 'top'].includes(basePlacement) ? -1 : 1;\n const rawValue = typeof value === 'function' ? value({ ...rects,\n placement\n }) : value;\n const {\n mainAxis,\n crossAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawValue\n };\n return getMainAxisFromPlacement(basePlacement) === 'x' ? {\n x: crossAxis,\n y: mainAxis * multiplier\n } : {\n x: mainAxis * multiplier,\n y: crossAxis\n };\n}\nconst offset = function (value) {\n if (value === void 0) {\n value = 0;\n }\n\n return {\n name: 'offset',\n options: value,\n\n fn(middlewareArguments) {\n const {\n x,\n y,\n placement,\n rects\n } = middlewareArguments;\n const diffCoords = convertValueToCoords({\n placement,\n rects,\n value\n });\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n\n };\n};\n\nfunction getCrossAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\n\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'shift',\n options,\n\n async fn(middlewareArguments) {\n const {\n x,\n y,\n placement\n } = middlewareArguments;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = options;\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const mainAxis = getMainAxisFromPlacement(getBasePlacement(placement));\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = within(min, mainAxisCoord, max);\n }\n\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = within(min, crossAxisCoord, max);\n }\n\n const limitedCoords = limiter.fn({ ...middlewareArguments,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return { ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n\n };\n};\n\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'size',\n options,\n\n async fn(middlewareArguments) {\n var _middlewareData$size;\n\n const {\n placement,\n rects,\n middlewareData\n } = middlewareArguments;\n const {\n apply,\n ...detectOverflowOptions\n } = options;\n\n if ((_middlewareData$size = middlewareData.size) != null && _middlewareData$size.skip) {\n return {};\n }\n\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const basePlacement = getBasePlacement(placement);\n const isEnd = getAlignment(placement) === 'end';\n let heightSide;\n let widthSide;\n\n if (basePlacement === 'top' || basePlacement === 'bottom') {\n heightSide = basePlacement;\n widthSide = isEnd ? 'left' : 'right';\n } else {\n widthSide = basePlacement;\n heightSide = isEnd ? 'top' : 'bottom';\n }\n\n const xMin = max$1(overflow.left, 0);\n const xMax = max$1(overflow.right, 0);\n const yMin = max$1(overflow.top, 0);\n const yMax = max$1(overflow.bottom, 0);\n const dimensions = {\n height: rects.floating.height - (['left', 'right'].includes(placement) ? 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max$1(overflow.top, overflow.bottom)) : overflow[heightSide]),\n width: rects.floating.width - (['top', 'bottom'].includes(placement) ? 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max$1(overflow.left, overflow.right)) : overflow[widthSide])\n };\n apply == null ? void 0 : apply({ ...dimensions,\n ...rects\n });\n return {\n data: {\n skip: true\n },\n reset: {\n rects: true\n }\n };\n }\n\n };\n};\n\nfunction isWindow(value) {\n return (value == null ? void 0 : value.toString()) === '[object Window]';\n}\nfunction getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (!isWindow(node)) {\n const ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n\nfunction getComputedStyle$1(element) {\n return getWindow(element).getComputedStyle(element);\n}\n\nfunction getNodeName(node) {\n return isWindow(node) ? '' : node ? (node.nodeName || '').toLowerCase() : '';\n}\n\nfunction isHTMLElement(value) {\n return value instanceof getWindow(value).HTMLElement;\n}\nfunction isElement(value) {\n return value instanceof getWindow(value).Element;\n}\nfunction isNode(value) {\n return value instanceof getWindow(value).Node;\n}\nfunction isShadowRoot(node) {\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\nfunction isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n const {\n overflow,\n overflowX,\n overflowY\n } = getComputedStyle$1(element);\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n // TODO: Try and use feature detection here instead\n const isFirefox = navigator.userAgent.toLowerCase().includes('firefox');\n const css = getComputedStyle$1(element); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n return css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].includes(css.willChange) || isFirefox && css.willChange === 'filter' || isFirefox && (css.filter ? css.filter !== 'none' : false);\n}\n\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\n\nfunction getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n const clientRect = element.getBoundingClientRect();\n let scaleX = 1;\n let scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n return {\n width: clientRect.width / scaleX,\n height: clientRect.height / scaleY,\n top: clientRect.top / scaleY,\n right: clientRect.right / scaleX,\n bottom: clientRect.bottom / scaleY,\n left: clientRect.left / scaleX,\n x: clientRect.left / scaleX,\n y: clientRect.top / scaleY\n };\n}\n\nfunction getDocumentElement(node) {\n return ((isNode(node) ? node.ownerDocument : node.document) || window.document).documentElement;\n}\n\nfunction getNodeScroll(element) {\n if (isWindow(element)) {\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n }\n\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}\n\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\nfunction isScaled(element) {\n const rect = getBoundingClientRect(element);\n return round(rect.width) !== element.offsetWidth || round(rect.height) !== element.offsetHeight;\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(element, isOffsetParentAnElement && isScaled(offsetParent));\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // @ts-ignore\n node.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n node.parentNode || ( // DOM Element detected\n isShadowRoot(node) ? node.host : null) || // ShadowRoot detected\n getDocumentElement(node) // fallback\n\n );\n}\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n}\n\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && !['html', 'body'].includes(getNodeName(currentNode))) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nfunction getOffsetParent(element) {\n const window = getWindow(element);\n let offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n\nfunction getDimensions(element) {\n return {\n width: element.offsetWidth,\n height: element.offsetHeight\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n\n if (offsetParent === documentElement) {\n return rect;\n }\n\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } // This doesn't appear to be need to be negated.\n // else if (documentElement) {\n // offsets.x = getWindowScrollBarX(documentElement);\n // }\n\n }\n\n return { ...rect,\n x: rect.x - scroll.scrollLeft + offsets.x,\n y: rect.y - scroll.scrollTop + offsets.y\n };\n}\n\nfunction getViewportRect(element) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n\n if (Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) < 0.01) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nfunction getDocumentRect(element) {\n var _element$ownerDocumen;\n\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n const width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n const height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n\n if (getComputedStyle$1(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getScrollParent(node) {\n if (['html', 'body', '#document'].includes(getNodeName(node))) {\n // @ts-ignore assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}\n\nfunction getScrollParents(node, list) {\n var _node$ownerDocument;\n\n if (list === void 0) {\n list = [];\n }\n\n const scrollParent = getScrollParent(node);\n const isBody = scrollParent === ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.body);\n const win = getWindow(scrollParent);\n const target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n const updatedList = list.concat(target);\n return isBody ? updatedList : // @ts-ignore: isBody tells us target will be an HTMLElement here\n updatedList.concat(getScrollParents(getParentNode(target)));\n}\n\nfunction contains(parent, child) {\n const rootNode = child.getRootNode == null ? void 0 : child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n\n do {\n // use `===` replace node.isSameNode()\n if (next && parent === next) {\n return true;\n } // @ts-ignore: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n }\n\n return false;\n}\n\nfunction getInnerBoundingClientRect(element) {\n const clientRect = getBoundingClientRect(element);\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n return {\n top,\n left,\n x: left,\n y: top,\n right: left + element.clientWidth,\n bottom: top + element.clientHeight,\n width: element.clientWidth,\n height: element.clientHeight\n };\n}\n\nfunction getClientRectFromClippingParent(element, clippingParent) {\n if (clippingParent === 'viewport') {\n return rectToClientRect(getViewportRect(element));\n }\n\n if (isElement(clippingParent)) {\n return getInnerBoundingClientRect(clippingParent);\n }\n\n return rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n const clippingParents = getScrollParents(getParentNode(element));\n const canEscapeClipping = ['absolute', 'fixed'].includes(getComputedStyle$1(element).position);\n const clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // @ts-ignore isElement check ensures we return Array<Element>\n\n\n return clippingParents.filter(clippingParent => isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body');\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nfunction getClippingClientRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary\n } = _ref;\n const mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n const clippingParents = [...mainClippingParents, rootBoundary];\n const firstClippingParent = clippingParents[0];\n const clippingRect = clippingParents.reduce((accRect, clippingParent) => {\n const rect = getClientRectFromClippingParent(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingParent(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}\n\nconst platform = {\n getElementRects: _ref => {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n return {\n reference: getRectRelativeToOffsetParent(reference, getOffsetParent(floating), strategy),\n floating: { ...getDimensions(floating),\n x: 0,\n y: 0\n }\n };\n },\n convertOffsetParentRelativeRectToViewportRelativeRect: args => convertOffsetParentRelativeRectToViewportRelativeRect(args),\n getOffsetParent: _ref2 => {\n let {\n element\n } = _ref2;\n return getOffsetParent(element);\n },\n isElement: value => isElement(value),\n getDocumentElement: _ref3 => {\n let {\n element\n } = _ref3;\n return getDocumentElement(element);\n },\n getClippingClientRect: args => getClippingClientRect(args),\n getDimensions: _ref4 => {\n let {\n element\n } = _ref4;\n return getDimensions(element);\n },\n getClientRects: _ref5 => {\n let {\n element\n } = _ref5;\n return element.getClientRects();\n }\n};\n\nconst computePosition = (reference, floating, options) => computePosition$1(reference, floating, {\n platform,\n ...options\n});\n\n/*!\n * Vue.js v2.7.10\n * (c) 2014-2022 Evan You\n * Released under the MIT License.\n */\nvar emptyObject = Object.freeze({});\r\nvar isArray = Array.isArray;\r\n// These helpers produce better VM code in JS engines due to their\r\n// explicitness and function inlining.\r\nfunction isUndef(v) {\r\n return v === undefined || v === null;\r\n}\r\nfunction isDef(v) {\r\n return v !== undefined && v !== null;\r\n}\r\nfunction isTrue(v) {\r\n return v === true;\r\n}\r\nfunction isFalse(v) {\r\n return v === false;\r\n}\r\n/**\r\n * Check if value is primitive.\r\n */\r\nfunction isPrimitive(value) {\r\n return (typeof value === 'string' ||\r\n typeof value === 'number' ||\r\n // $flow-disable-line\r\n typeof value === 'symbol' ||\r\n typeof value === 'boolean');\r\n}\r\nfunction isFunction(value) {\r\n return typeof value === 'function';\r\n}\r\n/**\r\n * Quick object check - this is primarily used to tell\r\n * objects from primitive values when we know the value\r\n * is a JSON-compliant type.\r\n */\r\nfunction isObject(obj) {\r\n return obj !== null && typeof obj === 'object';\r\n}\r\n/**\r\n * Get the raw type string of a value, e.g., [object Object].\r\n */\r\nvar _toString = Object.prototype.toString;\r\nfunction toRawType(value) {\r\n return _toString.call(value).slice(8, -1);\r\n}\r\n/**\r\n * Strict object type check. Only returns true\r\n * for plain JavaScript objects.\r\n */\r\nfunction isPlainObject(obj) {\r\n return _toString.call(obj) === '[object Object]';\r\n}\r\nfunction isRegExp(v) {\r\n return _toString.call(v) === '[object RegExp]';\r\n}\r\n/**\r\n * Check if val is a valid array index.\r\n */\r\nfunction isValidArrayIndex(val) {\r\n var n = parseFloat(String(val));\r\n return n >= 0 && Math.floor(n) === n && isFinite(val);\r\n}\r\nfunction isPromise(val) {\r\n return (isDef(val) &&\r\n typeof val.then === 'function' &&\r\n typeof val.catch === 'function');\r\n}\r\n/**\r\n * Convert a value to a string that is actually rendered.\r\n */\r\nfunction toString(val) {\r\n return val == null\r\n ? ''\r\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\r\n ? JSON.stringify(val, null, 2)\r\n : String(val);\r\n}\r\n/**\r\n * Convert an input value to a number for persistence.\r\n * If the conversion fails, return original string.\r\n */\r\nfunction toNumber(val) {\r\n var n = parseFloat(val);\r\n return isNaN(n) ? val : n;\r\n}\r\n/**\r\n * Make a map and return a function for checking if a key\r\n * is in that map.\r\n */\r\nfunction makeMap(str, expectsLowerCase) {\r\n var map = Object.create(null);\r\n var list = str.split(',');\r\n for (var i = 0; i < list.length; i++) {\r\n map[list[i]] = true;\r\n }\r\n return expectsLowerCase ? function (val) { return map[val.toLowerCase()]; } : function (val) { return map[val]; };\r\n}\r\n/**\r\n * Check if a tag is a built-in tag.\r\n */\r\nvar isBuiltInTag = makeMap('slot,component', true);\r\n/**\r\n * Check if an attribute is a reserved attribute.\r\n */\r\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\r\n/**\r\n * Remove an item from an array.\r\n */\r\nfunction remove$2(arr, item) {\r\n if (arr.length) {\r\n var index = arr.indexOf(item);\r\n if (index > -1) {\r\n return arr.splice(index, 1);\r\n }\r\n }\r\n}\r\n/**\r\n * Check whether an object has the property.\r\n */\r\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\r\nfunction hasOwn(obj, key) {\r\n return hasOwnProperty.call(obj, key);\r\n}\r\n/**\r\n * Create a cached version of a pure function.\r\n */\r\nfunction cached(fn) {\r\n var cache = Object.create(null);\r\n return function cachedFn(str) {\r\n var hit = cache[str];\r\n return hit || (cache[str] = fn(str));\r\n };\r\n}\r\n/**\r\n * Camelize a hyphen-delimited string.\r\n */\r\nvar camelizeRE = /-(\\w)/g;\r\nvar camelize = cached(function (str) {\r\n return str.replace(camelizeRE, function (_, c) { return (c ? c.toUpperCase() : ''); });\r\n});\r\n/**\r\n * Capitalize a string.\r\n */\r\nvar capitalize = cached(function (str) {\r\n return str.charAt(0).toUpperCase() + str.slice(1);\r\n});\r\n/**\r\n * Hyphenate a camelCase string.\r\n */\r\nvar hyphenateRE = /\\B([A-Z])/g;\r\nvar hyphenate = cached(function (str) {\r\n return str.replace(hyphenateRE, '-$1').toLowerCase();\r\n});\r\n/**\r\n * Simple bind polyfill for environments that do not support it,\r\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\r\n * since native bind is now performant enough in most browsers.\r\n * But removing it would mean breaking code that was able to run in\r\n * PhantomJS 1.x, so this must be kept for backward compatibility.\r\n */\r\n/* istanbul ignore next */\r\nfunction polyfillBind(fn, ctx) {\r\n function boundFn(a) {\r\n var l = arguments.length;\r\n return l\r\n ? l > 1\r\n ? fn.apply(ctx, arguments)\r\n : fn.call(ctx, a)\r\n : fn.call(ctx);\r\n }\r\n boundFn._length = fn.length;\r\n return boundFn;\r\n}\r\nfunction nativeBind(fn, ctx) {\r\n return fn.bind(ctx);\r\n}\r\n// @ts-expect-error bind cannot be `undefined`\r\nvar bind$1 = Function.prototype.bind ? nativeBind : polyfillBind;\r\n/**\r\n * Convert an Array-like object to a real Array.\r\n */\r\nfunction toArray(list, start) {\r\n start = start || 0;\r\n var i = list.length - start;\r\n var ret = new Array(i);\r\n while (i--) {\r\n ret[i] = list[i + start];\r\n }\r\n return ret;\r\n}\r\n/**\r\n * Mix properties into target object.\r\n */\r\nfunction extend(to, _from) {\r\n for (var key in _from) {\r\n to[key] = _from[key];\r\n }\r\n return to;\r\n}\r\n/**\r\n * Merge an Array of Objects into a single Object.\r\n */\r\nfunction toObject(arr) {\r\n var res = {};\r\n for (var i = 0; i < arr.length; i++) {\r\n if (arr[i]) {\r\n extend(res, arr[i]);\r\n }\r\n }\r\n return res;\r\n}\r\n/* eslint-disable no-unused-vars */\r\n/**\r\n * Perform no operation.\r\n * Stubbing args to make Flow happy without leaving useless transpiled code\r\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\r\n */\r\nfunction noop(a, b, c) { }\r\n/**\r\n * Always return false.\r\n */\r\nvar no = function (a, b, c) { return false; };\r\n/* eslint-enable no-unused-vars */\r\n/**\r\n * Return the same value.\r\n */\r\nvar identity = function (_) { return _; };\r\n/**\r\n * Check if two values are loosely equal - that is,\r\n * if they are plain objects, do they have the same shape?\r\n */\r\nfunction looseEqual(a, b) {\r\n if (a === b)\r\n return true;\r\n var isObjectA = isObject(a);\r\n var isObjectB = isObject(b);\r\n if (isObjectA && isObjectB) {\r\n try {\r\n var isArrayA = Array.isArray(a);\r\n var isArrayB = Array.isArray(b);\r\n if (isArrayA && isArrayB) {\r\n return (a.length === b.length &&\r\n a.every(function (e, i) {\r\n return looseEqual(e, b[i]);\r\n }));\r\n }\r\n else if (a instanceof Date && b instanceof Date) {\r\n return a.getTime() === b.getTime();\r\n }\r\n else if (!isArrayA && !isArrayB) {\r\n var keysA = Object.keys(a);\r\n var keysB = Object.keys(b);\r\n return (keysA.length === keysB.length &&\r\n keysA.every(function (key) {\r\n return looseEqual(a[key], b[key]);\r\n }));\r\n }\r\n else {\r\n /* istanbul ignore next */\r\n return false;\r\n }\r\n }\r\n catch (e) {\r\n /* istanbul ignore next */\r\n return false;\r\n }\r\n }\r\n else if (!isObjectA && !isObjectB) {\r\n return String(a) === String(b);\r\n }\r\n else {\r\n return false;\r\n }\r\n}\r\n/**\r\n * Return the first index at which a loosely equal value can be\r\n * found in the array (if value is a plain object, the array must\r\n * contain an object of the same shape), or -1 if it is not present.\r\n */\r\nfunction looseIndexOf(arr, val) {\r\n for (var i = 0; i < arr.length; i++) {\r\n if (looseEqual(arr[i], val))\r\n return i;\r\n }\r\n return -1;\r\n}\r\n/**\r\n * Ensure a function is called only once.\r\n */\r\nfunction once(fn) {\r\n var called = false;\r\n return function () {\r\n if (!called) {\r\n called = true;\r\n fn.apply(this, arguments);\r\n }\r\n };\r\n}\r\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is#polyfill\r\nfunction hasChanged(x, y) {\r\n if (x === y) {\r\n return x === 0 && 1 / x !== 1 / y;\r\n }\r\n else {\r\n return x === x || y === y;\r\n }\r\n}\n\nvar SSR_ATTR = 'data-server-rendered';\r\nvar ASSET_TYPES = ['component', 'directive', 'filter'];\r\nvar LIFECYCLE_HOOKS = [\r\n 'beforeCreate',\r\n 'created',\r\n 'beforeMount',\r\n 'mounted',\r\n 'beforeUpdate',\r\n 'updated',\r\n 'beforeDestroy',\r\n 'destroyed',\r\n 'activated',\r\n 'deactivated',\r\n 'errorCaptured',\r\n 'serverPrefetch',\r\n 'renderTracked',\r\n 'renderTriggered'\r\n];\n\nvar config$1 = {\r\n /**\r\n * Option merge strategies (used in core/util/options)\r\n */\r\n // $flow-disable-line\r\n optionMergeStrategies: Object.create(null),\r\n /**\r\n * Whether to suppress warnings.\r\n */\r\n silent: false,\r\n /**\r\n * Show production mode tip message on boot?\r\n */\r\n productionTip: process.env.NODE_ENV !== 'production',\r\n /**\r\n * Whether to enable devtools\r\n */\r\n devtools: process.env.NODE_ENV !== 'production',\r\n /**\r\n * Whether to record perf\r\n */\r\n performance: false,\r\n /**\r\n * Error handler for watcher errors\r\n */\r\n errorHandler: null,\r\n /**\r\n * Warn handler for watcher warns\r\n */\r\n warnHandler: null,\r\n /**\r\n * Ignore certain custom elements\r\n */\r\n ignoredElements: [],\r\n /**\r\n * Custom user key aliases for v-on\r\n */\r\n // $flow-disable-line\r\n keyCodes: Object.create(null),\r\n /**\r\n * Check if a tag is reserved so that it cannot be registered as a\r\n * component. This is platform-dependent and may be overwritten.\r\n */\r\n isReservedTag: no,\r\n /**\r\n * Check if an attribute is reserved so that it cannot be used as a component\r\n * prop. This is platform-dependent and may be overwritten.\r\n */\r\n isReservedAttr: no,\r\n /**\r\n * Check if a tag is an unknown element.\r\n * Platform-dependent.\r\n */\r\n isUnknownElement: no,\r\n /**\r\n * Get the namespace of an element\r\n */\r\n getTagNamespace: noop,\r\n /**\r\n * Parse the real tag name for the specific platform.\r\n */\r\n parsePlatformTagName: identity,\r\n /**\r\n * Check if an attribute must be bound using property, e.g. value\r\n * Platform-dependent.\r\n */\r\n mustUseProp: no,\r\n /**\r\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\r\n * This will significantly reduce performance if set to false.\r\n */\r\n async: true,\r\n /**\r\n * Exposed for legacy reasons\r\n */\r\n _lifecycleHooks: LIFECYCLE_HOOKS\r\n};\n\n/**\r\n * unicode letters used for parsing html tags, component names and property paths.\r\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\r\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\r\n */\r\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\r\n/**\r\n * Check if a string starts with $ or _\r\n */\r\nfunction isReserved(str) {\r\n var c = (str + '').charCodeAt(0);\r\n return c === 0x24 || c === 0x5f;\r\n}\r\n/**\r\n * Define a property.\r\n */\r\nfunction def(obj, key, val, enumerable) {\r\n Object.defineProperty(obj, key, {\r\n value: val,\r\n enumerable: !!enumerable,\r\n writable: true,\r\n configurable: true\r\n });\r\n}\r\n/**\r\n * Parse simple path.\r\n */\r\nvar bailRE = new RegExp(\"[^\".concat(unicodeRegExp.source, \".$_\\\\d]\"));\r\nfunction parsePath(path) {\r\n if (bailRE.test(path)) {\r\n return;\r\n }\r\n var segments = path.split('.');\r\n return function (obj) {\r\n for (var i = 0; i < segments.length; i++) {\r\n if (!obj)\r\n return;\r\n obj = obj[segments[i]];\r\n }\r\n return obj;\r\n };\r\n}\n\n// can we use __proto__?\r\nvar hasProto = '__proto__' in {};\r\n// Browser environment sniffing\r\nvar inBrowser = typeof window !== 'undefined';\r\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\r\nvar isIE$1 = UA && /msie|trident/.test(UA);\r\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\r\nvar isEdge = UA && UA.indexOf('edge/') > 0;\r\nUA && UA.indexOf('android') > 0;\r\nvar isIOS$1 = UA && /iphone|ipad|ipod|ios/.test(UA);\r\nUA && /chrome\\/\\d+/.test(UA) && !isEdge;\r\nUA && /phantomjs/.test(UA);\r\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\r\n// Firefox has a \"watch\" function on Object.prototype...\r\n// @ts-expect-error firebox support\r\nvar nativeWatch = {}.watch;\r\nvar supportsPassive$1 = false;\r\nif (inBrowser) {\r\n try {\r\n var opts = {};\r\n Object.defineProperty(opts, 'passive', {\r\n get: function () {\r\n /* istanbul ignore next */\r\n supportsPassive$1 = true;\r\n }\r\n }); // https://github.com/facebook/flow/issues/285\r\n window.addEventListener('test-passive', null, opts);\r\n }\r\n catch (e) { }\r\n}\r\n// this needs to be lazy-evaled because vue may be required before\r\n// vue-server-renderer can set VUE_ENV\r\nvar _isServer;\r\nvar isServerRendering = function () {\r\n if (_isServer === undefined) {\r\n /* istanbul ignore if */\r\n if (!inBrowser && typeof global !== 'undefined') {\r\n // detect presence of vue-server-renderer and avoid\r\n // Webpack shimming the process\r\n _isServer =\r\n global['process'] && global['process'].env.VUE_ENV === 'server';\r\n }\r\n else {\r\n _isServer = false;\r\n }\r\n }\r\n return _isServer;\r\n};\r\n// detect devtools\r\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\r\n/* istanbul ignore next */\r\nfunction isNative(Ctor) {\r\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString());\r\n}\r\nvar hasSymbol = typeof Symbol !== 'undefined' &&\r\n isNative(Symbol) &&\r\n typeof Reflect !== 'undefined' &&\r\n isNative(Reflect.ownKeys);\r\nvar _Set; // $flow-disable-line\r\n/* istanbul ignore if */ if (typeof Set !== 'undefined' && isNative(Set)) {\r\n // use native Set when available.\r\n _Set = Set;\r\n}\r\nelse {\r\n // a non-standard Set polyfill that only works with primitive keys.\r\n _Set = /** @class */ (function () {\r\n function Set() {\r\n this.set = Object.create(null);\r\n }\r\n Set.prototype.has = function (key) {\r\n return this.set[key] === true;\r\n };\r\n Set.prototype.add = function (key) {\r\n this.set[key] = true;\r\n };\r\n Set.prototype.clear = function () {\r\n this.set = Object.create(null);\r\n };\r\n return Set;\r\n }());\r\n}\n\nvar currentInstance = null;\r\n/**\r\n * @internal\r\n */\r\nfunction setCurrentInstance(vm) {\r\n if (vm === void 0) { vm = null; }\r\n if (!vm)\r\n currentInstance && currentInstance._scope.off();\r\n currentInstance = vm;\r\n vm && vm._scope.on();\r\n}\n\n/**\r\n * @internal\r\n */\r\nvar VNode = /** @class */ (function () {\r\n function VNode(tag, data, children, text, elm, context, componentOptions, asyncFactory) {\r\n this.tag = tag;\r\n this.data = data;\r\n this.children = children;\r\n this.text = text;\r\n this.elm = elm;\r\n this.ns = undefined;\r\n this.context = context;\r\n this.fnContext = undefined;\r\n this.fnOptions = undefined;\r\n this.fnScopeId = undefined;\r\n this.key = data && data.key;\r\n this.componentOptions = componentOptions;\r\n this.componentInstance = undefined;\r\n this.parent = undefined;\r\n this.raw = false;\r\n this.isStatic = false;\r\n this.isRootInsert = true;\r\n this.isComment = false;\r\n this.isCloned = false;\r\n this.isOnce = false;\r\n this.asyncFactory = asyncFactory;\r\n this.asyncMeta = undefined;\r\n this.isAsyncPlaceholder = false;\r\n }\r\n Object.defineProperty(VNode.prototype, \"child\", {\r\n // DEPRECATED: alias for componentInstance for backwards compat.\r\n /* istanbul ignore next */\r\n get: function () {\r\n return this.componentInstance;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return VNode;\r\n}());\r\nvar createEmptyVNode = function (text) {\r\n if (text === void 0) { text = ''; }\r\n var node = new VNode();\r\n node.text = text;\r\n node.isComment = true;\r\n return node;\r\n};\r\nfunction createTextVNode(val) {\r\n return new VNode(undefined, undefined, undefined, String(val));\r\n}\r\n// optimized shallow clone\r\n// used for static nodes and slot nodes because they may be reused across\r\n// multiple renders, cloning them avoids errors when DOM manipulations rely\r\n// on their elm reference.\r\nfunction cloneVNode(vnode) {\r\n var cloned = new VNode(vnode.tag, vnode.data, \r\n // #7975\r\n // clone children array to avoid mutating original in case of cloning\r\n // a child.\r\n vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory);\r\n cloned.ns = vnode.ns;\r\n cloned.isStatic = vnode.isStatic;\r\n cloned.key = vnode.key;\r\n cloned.isComment = vnode.isComment;\r\n cloned.fnContext = vnode.fnContext;\r\n cloned.fnOptions = vnode.fnOptions;\r\n cloned.fnScopeId = vnode.fnScopeId;\r\n cloned.asyncMeta = vnode.asyncMeta;\r\n cloned.isCloned = true;\r\n return cloned;\r\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nvar uid$2 = 0;\r\n/**\r\n * A dep is an observable that can have multiple\r\n * directives subscribing to it.\r\n * @internal\r\n */\r\nvar Dep = /** @class */ (function () {\r\n function Dep() {\r\n this.id = uid$2++;\r\n this.subs = [];\r\n }\r\n Dep.prototype.addSub = function (sub) {\r\n this.subs.push(sub);\r\n };\r\n Dep.prototype.removeSub = function (sub) {\r\n remove$2(this.subs, sub);\r\n };\r\n Dep.prototype.depend = function (info) {\r\n if (Dep.target) {\r\n Dep.target.addDep(this);\r\n if (process.env.NODE_ENV !== 'production' && info && Dep.target.onTrack) {\r\n Dep.target.onTrack(__assign({ effect: Dep.target }, info));\r\n }\r\n }\r\n };\r\n Dep.prototype.notify = function (info) {\r\n // stabilize the subscriber list first\r\n var subs = this.subs.slice();\r\n if (process.env.NODE_ENV !== 'production' && !config$1.async) {\r\n // subs aren't sorted in scheduler if not running async\r\n // we need to sort them now to make sure they fire in correct\r\n // order\r\n subs.sort(function (a, b) { return a.id - b.id; });\r\n }\r\n for (var i = 0, l = subs.length; i < l; i++) {\r\n if (process.env.NODE_ENV !== 'production' && info) {\r\n var sub = subs[i];\r\n sub.onTrigger &&\r\n sub.onTrigger(__assign({ effect: subs[i] }, info));\r\n }\r\n subs[i].update();\r\n }\r\n };\r\n return Dep;\r\n}());\r\n// The current target watcher being evaluated.\r\n// This is globally unique because only one watcher\r\n// can be evaluated at a time.\r\nDep.target = null;\r\nvar targetStack = [];\r\nfunction pushTarget(target) {\r\n targetStack.push(target);\r\n Dep.target = target;\r\n}\r\nfunction popTarget() {\r\n targetStack.pop();\r\n Dep.target = targetStack[targetStack.length - 1];\r\n}\n\n/*\r\n * not type checking this file because flow doesn't play well with\r\n * dynamically accessing methods on Array prototype\r\n */\r\nvar arrayProto = Array.prototype;\r\nvar arrayMethods = Object.create(arrayProto);\r\nvar methodsToPatch = [\r\n 'push',\r\n 'pop',\r\n 'shift',\r\n 'unshift',\r\n 'splice',\r\n 'sort',\r\n 'reverse'\r\n];\r\n/**\r\n * Intercept mutating methods and emit events\r\n */\r\nmethodsToPatch.forEach(function (method) {\r\n // cache original method\r\n var original = arrayProto[method];\r\n def(arrayMethods, method, function mutator() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var result = original.apply(this, args);\r\n var ob = this.__ob__;\r\n var inserted;\r\n switch (method) {\r\n case 'push':\r\n case 'unshift':\r\n inserted = args;\r\n break;\r\n case 'splice':\r\n inserted = args.slice(2);\r\n break;\r\n }\r\n if (inserted)\r\n ob.observeArray(inserted);\r\n // notify change\r\n if (process.env.NODE_ENV !== 'production') {\r\n ob.dep.notify({\r\n type: \"array mutation\" /* TriggerOpTypes.ARRAY_MUTATION */,\r\n target: this,\r\n key: method\r\n });\r\n }\r\n else {\r\n ob.dep.notify();\r\n }\r\n return result;\r\n });\r\n});\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\r\nvar NO_INIITIAL_VALUE = {};\r\n/**\r\n * In some cases we may want to disable observation inside a component's\r\n * update computation.\r\n */\r\nvar shouldObserve = true;\r\nfunction toggleObserving(value) {\r\n shouldObserve = value;\r\n}\r\n// ssr mock dep\r\nvar mockDep = {\r\n notify: noop,\r\n depend: noop,\r\n addSub: noop,\r\n removeSub: noop\r\n};\r\n/**\r\n * Observer class that is attached to each observed\r\n * object. Once attached, the observer converts the target\r\n * object's property keys into getter/setters that\r\n * collect dependencies and dispatch updates.\r\n */\r\nvar Observer = /** @class */ (function () {\r\n function Observer(value, shallow, mock) {\r\n if (shallow === void 0) { shallow = false; }\r\n if (mock === void 0) { mock = false; }\r\n this.value = value;\r\n this.shallow = shallow;\r\n this.mock = mock;\r\n // this.value = value\r\n this.dep = mock ? mockDep : new Dep();\r\n this.vmCount = 0;\r\n def(value, '__ob__', this);\r\n if (isArray(value)) {\r\n if (!mock) {\r\n if (hasProto) {\r\n value.__proto__ = arrayMethods;\r\n /* eslint-enable no-proto */\r\n }\r\n else {\r\n for (var i = 0, l = arrayKeys.length; i < l; i++) {\r\n var key = arrayKeys[i];\r\n def(value, key, arrayMethods[key]);\r\n }\r\n }\r\n }\r\n if (!shallow) {\r\n this.observeArray(value);\r\n }\r\n }\r\n else {\r\n /**\r\n * Walk through all properties and convert them into\r\n * getter/setters. This method should only be called when\r\n * value type is Object.\r\n */\r\n var keys = Object.keys(value);\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n defineReactive(value, key, NO_INIITIAL_VALUE, undefined, shallow, mock);\r\n }\r\n }\r\n }\r\n /**\r\n * Observe a list of Array items.\r\n */\r\n Observer.prototype.observeArray = function (value) {\r\n for (var i = 0, l = value.length; i < l; i++) {\r\n observe(value[i], false, this.mock);\r\n }\r\n };\r\n return Observer;\r\n}());\r\n// helpers\r\n/**\r\n * Attempt to create an observer instance for a value,\r\n * returns the new observer if successfully observed,\r\n * or the existing observer if the value already has one.\r\n */\r\nfunction observe(value, shallow, ssrMockReactivity) {\r\n if (!isObject(value) || isRef(value) || value instanceof VNode) {\r\n return;\r\n }\r\n var ob;\r\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\r\n ob = value.__ob__;\r\n }\r\n else if (shouldObserve &&\r\n (ssrMockReactivity || !isServerRendering()) &&\r\n (isArray(value) || isPlainObject(value)) &&\r\n Object.isExtensible(value) &&\r\n !value.__v_skip /* ReactiveFlags.SKIP */) {\r\n ob = new Observer(value, shallow, ssrMockReactivity);\r\n }\r\n return ob;\r\n}\r\n/**\r\n * Define a reactive property on an Object.\r\n */\r\nfunction defineReactive(obj, key, val, customSetter, shallow, mock) {\r\n var dep = new Dep();\r\n var property = Object.getOwnPropertyDescriptor(obj, key);\r\n if (property && property.configurable === false) {\r\n return;\r\n }\r\n // cater for pre-defined getter/setters\r\n var getter = property && property.get;\r\n var setter = property && property.set;\r\n if ((!getter || setter) &&\r\n (val === NO_INIITIAL_VALUE || arguments.length === 2)) {\r\n val = obj[key];\r\n }\r\n var childOb = !shallow && observe(val, false, mock);\r\n Object.defineProperty(obj, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: function reactiveGetter() {\r\n var value = getter ? getter.call(obj) : val;\r\n if (Dep.target) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n dep.depend({\r\n target: obj,\r\n type: \"get\" /* TrackOpTypes.GET */,\r\n key: key\r\n });\r\n }\r\n else {\r\n dep.depend();\r\n }\r\n if (childOb) {\r\n childOb.dep.depend();\r\n if (isArray(value)) {\r\n dependArray(value);\r\n }\r\n }\r\n }\r\n return isRef(value) && !shallow ? value.value : value;\r\n },\r\n set: function reactiveSetter(newVal) {\r\n var value = getter ? getter.call(obj) : val;\r\n if (!hasChanged(value, newVal)) {\r\n return;\r\n }\r\n if (process.env.NODE_ENV !== 'production' && customSetter) {\r\n customSetter();\r\n }\r\n if (setter) {\r\n setter.call(obj, newVal);\r\n }\r\n else if (getter) {\r\n // #7981: for accessor properties without setter\r\n return;\r\n }\r\n else if (!shallow && isRef(value) && !isRef(newVal)) {\r\n value.value = newVal;\r\n return;\r\n }\r\n else {\r\n val = newVal;\r\n }\r\n childOb = !shallow && observe(newVal, false, mock);\r\n if (process.env.NODE_ENV !== 'production') {\r\n dep.notify({\r\n type: \"set\" /* TriggerOpTypes.SET */,\r\n target: obj,\r\n key: key,\r\n newValue: newVal,\r\n oldValue: value\r\n });\r\n }\r\n else {\r\n dep.notify();\r\n }\r\n }\r\n });\r\n return dep;\r\n}\r\nfunction set(target, key, val) {\r\n if (process.env.NODE_ENV !== 'production' && (isUndef(target) || isPrimitive(target))) {\r\n warn(\"Cannot set reactive property on undefined, null, or primitive value: \".concat(target));\r\n }\r\n if (isReadonly(target)) {\r\n process.env.NODE_ENV !== 'production' && warn(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\r\n return;\r\n }\r\n var ob = target.__ob__;\r\n if (isArray(target) && isValidArrayIndex(key)) {\r\n target.length = Math.max(target.length, key);\r\n target.splice(key, 1, val);\r\n // when mocking for SSR, array methods are not hijacked\r\n if (ob && !ob.shallow && ob.mock) {\r\n observe(val, false, true);\r\n }\r\n return val;\r\n }\r\n if (key in target && !(key in Object.prototype)) {\r\n target[key] = val;\r\n return val;\r\n }\r\n if (target._isVue || (ob && ob.vmCount)) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn('Avoid adding reactive properties to a Vue instance or its root $data ' +\r\n 'at runtime - declare it upfront in the data option.');\r\n return val;\r\n }\r\n if (!ob) {\r\n target[key] = val;\r\n return val;\r\n }\r\n defineReactive(ob.value, key, val, undefined, ob.shallow, ob.mock);\r\n if (process.env.NODE_ENV !== 'production') {\r\n ob.dep.notify({\r\n type: \"add\" /* TriggerOpTypes.ADD */,\r\n target: target,\r\n key: key,\r\n newValue: val,\r\n oldValue: undefined\r\n });\r\n }\r\n else {\r\n ob.dep.notify();\r\n }\r\n return val;\r\n}\r\nfunction del(target, key) {\r\n if (process.env.NODE_ENV !== 'production' && (isUndef(target) || isPrimitive(target))) {\r\n warn(\"Cannot delete reactive property on undefined, null, or primitive value: \".concat(target));\r\n }\r\n if (isArray(target) && isValidArrayIndex(key)) {\r\n target.splice(key, 1);\r\n return;\r\n }\r\n var ob = target.__ob__;\r\n if (target._isVue || (ob && ob.vmCount)) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn('Avoid deleting properties on a Vue instance or its root $data ' +\r\n '- just set it to null.');\r\n return;\r\n }\r\n if (isReadonly(target)) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn(\"Delete operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\r\n return;\r\n }\r\n if (!hasOwn(target, key)) {\r\n return;\r\n }\r\n delete target[key];\r\n if (!ob) {\r\n return;\r\n }\r\n if (process.env.NODE_ENV !== 'production') {\r\n ob.dep.notify({\r\n type: \"delete\" /* TriggerOpTypes.DELETE */,\r\n target: target,\r\n key: key\r\n });\r\n }\r\n else {\r\n ob.dep.notify();\r\n }\r\n}\r\n/**\r\n * Collect dependencies on array elements when the array is touched, since\r\n * we cannot intercept array element access like property getters.\r\n */\r\nfunction dependArray(value) {\r\n for (var e = void 0, i = 0, l = value.length; i < l; i++) {\r\n e = value[i];\r\n if (e && e.__ob__) {\r\n e.__ob__.dep.depend();\r\n }\r\n if (isArray(e)) {\r\n dependArray(e);\r\n }\r\n }\r\n}\n/**\r\n * Return a shallowly-reactive copy of the original object, where only the root\r\n * level properties are reactive. It also does not auto-unwrap refs (even at the\r\n * root level).\r\n */\r\nfunction shallowReactive(target) {\r\n makeReactive(target, true);\r\n def(target, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\r\n return target;\r\n}\r\nfunction makeReactive(target, shallow) {\r\n // if trying to observe a readonly proxy, return the readonly version.\r\n if (!isReadonly(target)) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (isArray(target)) {\r\n warn(\"Avoid using Array as root value for \".concat(shallow ? \"shallowReactive()\" : \"reactive()\", \" as it cannot be tracked in watch() or watchEffect(). Use \").concat(shallow ? \"shallowRef()\" : \"ref()\", \" instead. This is a Vue-2-only limitation.\"));\r\n }\r\n var existingOb = target && target.__ob__;\r\n if (existingOb && existingOb.shallow !== shallow) {\r\n warn(\"Target is already a \".concat(existingOb.shallow ? \"\" : \"non-\", \"shallow reactive object, and cannot be converted to \").concat(shallow ? \"\" : \"non-\", \"shallow.\"));\r\n }\r\n }\r\n var ob = observe(target, shallow, isServerRendering() /* ssr mock reactivity */);\r\n if (process.env.NODE_ENV !== 'production' && !ob) {\r\n if (target == null || isPrimitive(target)) {\r\n warn(\"value cannot be made reactive: \".concat(String(target)));\r\n }\r\n if (isCollectionType(target)) {\r\n warn(\"Vue 2 does not support reactive collection types such as Map or Set.\");\r\n }\r\n }\r\n }\r\n}\r\nfunction isReadonly(value) {\r\n return !!(value && value.__v_isReadonly);\r\n}\r\n/**\r\n * @internal\r\n */\r\nfunction isCollectionType(value) {\r\n var type = toRawType(value);\r\n return (type === 'Map' || type === 'WeakMap' || type === 'Set' || type === 'WeakSet');\r\n}\nfunction isRef(r) {\r\n return !!(r && r.__v_isRef === true);\r\n}\r\nfunction proxyWithRefUnwrap(target, source, key) {\r\n Object.defineProperty(target, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: function () {\r\n var val = source[key];\r\n if (isRef(val)) {\r\n return val.value;\r\n }\r\n else {\r\n var ob = val && val.__ob__;\r\n if (ob)\r\n ob.dep.depend();\r\n return val;\r\n }\r\n },\r\n set: function (value) {\r\n var oldValue = source[key];\r\n if (isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n }\r\n else {\r\n source[key] = value;\r\n }\r\n }\r\n });\r\n}\r\n\nvar activeEffectScope;\r\nvar EffectScope = /** @class */ (function () {\r\n function EffectScope(detached) {\r\n if (detached === void 0) { detached = false; }\r\n /**\r\n * @internal\r\n */\r\n this.active = true;\r\n /**\r\n * @internal\r\n */\r\n this.effects = [];\r\n /**\r\n * @internal\r\n */\r\n this.cleanups = [];\r\n if (!detached && activeEffectScope) {\r\n this.parent = activeEffectScope;\r\n this.index =\r\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\r\n }\r\n }\r\n EffectScope.prototype.run = function (fn) {\r\n if (this.active) {\r\n var currentEffectScope = activeEffectScope;\r\n try {\r\n activeEffectScope = this;\r\n return fn();\r\n }\r\n finally {\r\n activeEffectScope = currentEffectScope;\r\n }\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n warn(\"cannot run an inactive effect scope.\");\r\n }\r\n };\r\n /**\r\n * This should only be called on non-detached scopes\r\n * @internal\r\n */\r\n EffectScope.prototype.on = function () {\r\n activeEffectScope = this;\r\n };\r\n /**\r\n * This should only be called on non-detached scopes\r\n * @internal\r\n */\r\n EffectScope.prototype.off = function () {\r\n activeEffectScope = this.parent;\r\n };\r\n EffectScope.prototype.stop = function (fromParent) {\r\n if (this.active) {\r\n var i = void 0, l = void 0;\r\n for (i = 0, l = this.effects.length; i < l; i++) {\r\n this.effects[i].teardown();\r\n }\r\n for (i = 0, l = this.cleanups.length; i < l; i++) {\r\n this.cleanups[i]();\r\n }\r\n if (this.scopes) {\r\n for (i = 0, l = this.scopes.length; i < l; i++) {\r\n this.scopes[i].stop(true);\r\n }\r\n }\r\n // nested scope, dereference from parent to avoid memory leaks\r\n if (this.parent && !fromParent) {\r\n // optimized O(1) removal\r\n var last = this.parent.scopes.pop();\r\n if (last && last !== this) {\r\n this.parent.scopes[this.index] = last;\r\n last.index = this.index;\r\n }\r\n }\r\n this.active = false;\r\n }\r\n };\r\n return EffectScope;\r\n}());\r\n/**\r\n * @internal\r\n */\r\nfunction recordEffectScope(effect, scope) {\r\n if (scope === void 0) { scope = activeEffectScope; }\r\n if (scope && scope.active) {\r\n scope.effects.push(effect);\r\n }\r\n}\r\nfunction resolveProvided(vm) {\r\n // by default an instance inherits its parent's provides object\r\n // but when it needs to provide values of its own, it creates its\r\n // own provides object using parent provides object as prototype.\r\n // this way in `inject` we can simply look up injections from direct\r\n // parent and let the prototype chain do the work.\r\n var existing = vm._provided;\r\n var parentProvides = vm.$parent && vm.$parent._provided;\r\n if (parentProvides === existing) {\r\n return (vm._provided = Object.create(parentProvides));\r\n }\r\n else {\r\n return existing;\r\n }\r\n}\r\n\nvar normalizeEvent = cached(function (name) {\r\n var passive = name.charAt(0) === '&';\r\n name = passive ? name.slice(1) : name;\r\n var once = name.charAt(0) === '~'; // Prefixed last, checked first\r\n name = once ? name.slice(1) : name;\r\n var capture = name.charAt(0) === '!';\r\n name = capture ? name.slice(1) : name;\r\n return {\r\n name: name,\r\n once: once,\r\n capture: capture,\r\n passive: passive\r\n };\r\n});\r\nfunction createFnInvoker(fns, vm) {\r\n function invoker() {\r\n var fns = invoker.fns;\r\n if (isArray(fns)) {\r\n var cloned = fns.slice();\r\n for (var i = 0; i < cloned.length; i++) {\r\n invokeWithErrorHandling(cloned[i], null, arguments, vm, \"v-on handler\");\r\n }\r\n }\r\n else {\r\n // return handler return value for single handlers\r\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\");\r\n }\r\n }\r\n invoker.fns = fns;\r\n return invoker;\r\n}\r\nfunction updateListeners(on, oldOn, add, remove, createOnceHandler, vm) {\r\n var name, cur, old, event;\r\n for (name in on) {\r\n cur = on[name];\r\n old = oldOn[name];\r\n event = normalizeEvent(name);\r\n if (isUndef(cur)) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn(\"Invalid handler for event \\\"\".concat(event.name, \"\\\": got \") + String(cur), vm);\r\n }\r\n else if (isUndef(old)) {\r\n if (isUndef(cur.fns)) {\r\n cur = on[name] = createFnInvoker(cur, vm);\r\n }\r\n if (isTrue(event.once)) {\r\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\r\n }\r\n add(event.name, cur, event.capture, event.passive, event.params);\r\n }\r\n else if (cur !== old) {\r\n old.fns = cur;\r\n on[name] = old;\r\n }\r\n }\r\n for (name in oldOn) {\r\n if (isUndef(on[name])) {\r\n event = normalizeEvent(name);\r\n remove(event.name, oldOn[name], event.capture);\r\n }\r\n }\r\n}\n\nfunction mergeVNodeHook(def, hookKey, hook) {\r\n if (def instanceof VNode) {\r\n def = def.data.hook || (def.data.hook = {});\r\n }\r\n var invoker;\r\n var oldHook = def[hookKey];\r\n function wrappedHook() {\r\n hook.apply(this, arguments);\r\n // important: remove merged hook to ensure it's called only once\r\n // and prevent memory leak\r\n remove$2(invoker.fns, wrappedHook);\r\n }\r\n if (isUndef(oldHook)) {\r\n // no existing hook\r\n invoker = createFnInvoker([wrappedHook]);\r\n }\r\n else {\r\n /* istanbul ignore if */\r\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\r\n // already a merged invoker\r\n invoker = oldHook;\r\n invoker.fns.push(wrappedHook);\r\n }\r\n else {\r\n // existing plain hook\r\n invoker = createFnInvoker([oldHook, wrappedHook]);\r\n }\r\n }\r\n invoker.merged = true;\r\n def[hookKey] = invoker;\r\n}\n\nfunction extractPropsFromVNodeData(data, Ctor, tag) {\r\n // we are only extracting raw values here.\r\n // validation and default values are handled in the child\r\n // component itself.\r\n var propOptions = Ctor.options.props;\r\n if (isUndef(propOptions)) {\r\n return;\r\n }\r\n var res = {};\r\n var attrs = data.attrs, props = data.props;\r\n if (isDef(attrs) || isDef(props)) {\r\n for (var key in propOptions) {\r\n var altKey = hyphenate(key);\r\n if (process.env.NODE_ENV !== 'production') {\r\n var keyInLowerCase = key.toLowerCase();\r\n if (key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase)) {\r\n tip(\"Prop \\\"\".concat(keyInLowerCase, \"\\\" is passed to component \") +\r\n \"\".concat(formatComponentName(\r\n // @ts-expect-error tag is string\r\n tag || Ctor), \", but the declared prop name is\") +\r\n \" \\\"\".concat(key, \"\\\". \") +\r\n \"Note that HTML attributes are case-insensitive and camelCased \" +\r\n \"props need to use their kebab-case equivalents when using in-DOM \" +\r\n \"templates. You should probably use \\\"\".concat(altKey, \"\\\" instead of \\\"\").concat(key, \"\\\".\"));\r\n }\r\n }\r\n checkProp(res, props, key, altKey, true) ||\r\n checkProp(res, attrs, key, altKey, false);\r\n }\r\n }\r\n return res;\r\n}\r\nfunction checkProp(res, hash, key, altKey, preserve) {\r\n if (isDef(hash)) {\r\n if (hasOwn(hash, key)) {\r\n res[key] = hash[key];\r\n if (!preserve) {\r\n delete hash[key];\r\n }\r\n return true;\r\n }\r\n else if (hasOwn(hash, altKey)) {\r\n res[key] = hash[altKey];\r\n if (!preserve) {\r\n delete hash[altKey];\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\n\n// The template compiler attempts to minimize the need for normalization by\r\n// statically analyzing the template at compile time.\r\n//\r\n// For plain HTML markup, normalization can be completely skipped because the\r\n// generated render function is guaranteed to return Array<VNode>. There are\r\n// two cases where extra normalization is needed:\r\n// 1. When the children contains components - because a functional component\r\n// may return an Array instead of a single root. In this case, just a simple\r\n// normalization is needed - if any child is an Array, we flatten the whole\r\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\r\n// because functional components already normalize their own children.\r\nfunction simpleNormalizeChildren(children) {\r\n for (var i = 0; i < children.length; i++) {\r\n if (isArray(children[i])) {\r\n return Array.prototype.concat.apply([], children);\r\n }\r\n }\r\n return children;\r\n}\r\n// 2. When the children contains constructs that always generated nested Arrays,\r\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\r\n// with hand-written render functions / JSX. In such cases a full normalization\r\n// is needed to cater to all possible types of children values.\r\nfunction normalizeChildren(children) {\r\n return isPrimitive(children)\r\n ? [createTextVNode(children)]\r\n : isArray(children)\r\n ? normalizeArrayChildren(children)\r\n : undefined;\r\n}\r\nfunction isTextNode(node) {\r\n return isDef(node) && isDef(node.text) && isFalse(node.isComment);\r\n}\r\nfunction normalizeArrayChildren(children, nestedIndex) {\r\n var res = [];\r\n var i, c, lastIndex, last;\r\n for (i = 0; i < children.length; i++) {\r\n c = children[i];\r\n if (isUndef(c) || typeof c === 'boolean')\r\n continue;\r\n lastIndex = res.length - 1;\r\n last = res[lastIndex];\r\n // nested\r\n if (isArray(c)) {\r\n if (c.length > 0) {\r\n c = normalizeArrayChildren(c, \"\".concat(nestedIndex || '', \"_\").concat(i));\r\n // merge adjacent text nodes\r\n if (isTextNode(c[0]) && isTextNode(last)) {\r\n res[lastIndex] = createTextVNode(last.text + c[0].text);\r\n c.shift();\r\n }\r\n res.push.apply(res, c);\r\n }\r\n }\r\n else if (isPrimitive(c)) {\r\n if (isTextNode(last)) {\r\n // merge adjacent text nodes\r\n // this is necessary for SSR hydration because text nodes are\r\n // essentially merged when rendered to HTML strings\r\n res[lastIndex] = createTextVNode(last.text + c);\r\n }\r\n else if (c !== '') {\r\n // convert primitive to vnode\r\n res.push(createTextVNode(c));\r\n }\r\n }\r\n else {\r\n if (isTextNode(c) && isTextNode(last)) {\r\n // merge adjacent text nodes\r\n res[lastIndex] = createTextVNode(last.text + c.text);\r\n }\r\n else {\r\n // default key for nested array children (likely generated by v-for)\r\n if (isTrue(children._isVList) &&\r\n isDef(c.tag) &&\r\n isUndef(c.key) &&\r\n isDef(nestedIndex)) {\r\n c.key = \"__vlist\".concat(nestedIndex, \"_\").concat(i, \"__\");\r\n }\r\n res.push(c);\r\n }\r\n }\r\n }\r\n return res;\r\n}\n\n/**\r\n * Runtime helper for rendering v-for lists.\r\n */\r\nfunction renderList(val, render) {\r\n var ret = null, i, l, keys, key;\r\n if (isArray(val) || typeof val === 'string') {\r\n ret = new Array(val.length);\r\n for (i = 0, l = val.length; i < l; i++) {\r\n ret[i] = render(val[i], i);\r\n }\r\n }\r\n else if (typeof val === 'number') {\r\n ret = new Array(val);\r\n for (i = 0; i < val; i++) {\r\n ret[i] = render(i + 1, i);\r\n }\r\n }\r\n else if (isObject(val)) {\r\n if (hasSymbol && val[Symbol.iterator]) {\r\n ret = [];\r\n var iterator = val[Symbol.iterator]();\r\n var result = iterator.next();\r\n while (!result.done) {\r\n ret.push(render(result.value, ret.length));\r\n result = iterator.next();\r\n }\r\n }\r\n else {\r\n keys = Object.keys(val);\r\n ret = new Array(keys.length);\r\n for (i = 0, l = keys.length; i < l; i++) {\r\n key = keys[i];\r\n ret[i] = render(val[key], key, i);\r\n }\r\n }\r\n }\r\n if (!isDef(ret)) {\r\n ret = [];\r\n }\r\n ret._isVList = true;\r\n return ret;\r\n}\n\n/**\r\n * Runtime helper for rendering <slot>\r\n */\r\nfunction renderSlot(name, fallbackRender, props, bindObject) {\r\n var scopedSlotFn = this.$scopedSlots[name];\r\n var nodes;\r\n if (scopedSlotFn) {\r\n // scoped slot\r\n props = props || {};\r\n if (bindObject) {\r\n if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {\r\n warn('slot v-bind without argument expects an Object', this);\r\n }\r\n props = extend(extend({}, bindObject), props);\r\n }\r\n nodes =\r\n scopedSlotFn(props) ||\r\n (isFunction(fallbackRender) ? fallbackRender() : fallbackRender);\r\n }\r\n else {\r\n nodes =\r\n this.$slots[name] ||\r\n (isFunction(fallbackRender) ? fallbackRender() : fallbackRender);\r\n }\r\n var target = props && props.slot;\r\n if (target) {\r\n return this.$createElement('template', { slot: target }, nodes);\r\n }\r\n else {\r\n return nodes;\r\n }\r\n}\n\n/**\r\n * Runtime helper for resolving filters\r\n */\r\nfunction resolveFilter(id) {\r\n return resolveAsset(this.$options, 'filters', id, true) || identity;\r\n}\n\nfunction isKeyNotMatch(expect, actual) {\r\n if (isArray(expect)) {\r\n return expect.indexOf(actual) === -1;\r\n }\r\n else {\r\n return expect !== actual;\r\n }\r\n}\r\n/**\r\n * Runtime helper for checking keyCodes from config.\r\n * exposed as Vue.prototype._k\r\n * passing in eventKeyName as last argument separately for backwards compat\r\n */\r\nfunction checkKeyCodes(eventKeyCode, key, builtInKeyCode, eventKeyName, builtInKeyName) {\r\n var mappedKeyCode = config$1.keyCodes[key] || builtInKeyCode;\r\n if (builtInKeyName && eventKeyName && !config$1.keyCodes[key]) {\r\n return isKeyNotMatch(builtInKeyName, eventKeyName);\r\n }\r\n else if (mappedKeyCode) {\r\n return isKeyNotMatch(mappedKeyCode, eventKeyCode);\r\n }\r\n else if (eventKeyName) {\r\n return hyphenate(eventKeyName) !== key;\r\n }\r\n return eventKeyCode === undefined;\r\n}\n\n/**\r\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\r\n */\r\nfunction bindObjectProps(data, tag, value, asProp, isSync) {\r\n if (value) {\r\n if (!isObject(value)) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn('v-bind without argument expects an Object or Array value', this);\r\n }\r\n else {\r\n if (isArray(value)) {\r\n value = toObject(value);\r\n }\r\n var hash = void 0;\r\n var _loop_1 = function (key) {\r\n if (key === 'class' || key === 'style' || isReservedAttribute(key)) {\r\n hash = data;\r\n }\r\n else {\r\n var type = data.attrs && data.attrs.type;\r\n hash =\r\n asProp || config$1.mustUseProp(tag, type, key)\r\n ? data.domProps || (data.domProps = {})\r\n : data.attrs || (data.attrs = {});\r\n }\r\n var camelizedKey = camelize(key);\r\n var hyphenatedKey = hyphenate(key);\r\n if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\r\n hash[key] = value[key];\r\n if (isSync) {\r\n var on = data.on || (data.on = {});\r\n on[\"update:\".concat(key)] = function ($event) {\r\n value[key] = $event;\r\n };\r\n }\r\n }\r\n };\r\n for (var key in value) {\r\n _loop_1(key);\r\n }\r\n }\r\n }\r\n return data;\r\n}\n\n/**\r\n * Runtime helper for rendering static trees.\r\n */\r\nfunction renderStatic(index, isInFor) {\r\n var cached = this._staticTrees || (this._staticTrees = []);\r\n var tree = cached[index];\r\n // if has already-rendered static tree and not inside v-for,\r\n // we can reuse the same tree.\r\n if (tree && !isInFor) {\r\n return tree;\r\n }\r\n // otherwise, render a fresh tree.\r\n tree = cached[index] = this.$options.staticRenderFns[index].call(this._renderProxy, this._c, this // for render fns generated for functional component templates\r\n );\r\n markStatic(tree, \"__static__\".concat(index), false);\r\n return tree;\r\n}\r\n/**\r\n * Runtime helper for v-once.\r\n * Effectively it means marking the node as static with a unique key.\r\n */\r\nfunction markOnce(tree, index, key) {\r\n markStatic(tree, \"__once__\".concat(index).concat(key ? \"_\".concat(key) : \"\"), true);\r\n return tree;\r\n}\r\nfunction markStatic(tree, key, isOnce) {\r\n if (isArray(tree)) {\r\n for (var i = 0; i < tree.length; i++) {\r\n if (tree[i] && typeof tree[i] !== 'string') {\r\n markStaticNode(tree[i], \"\".concat(key, \"_\").concat(i), isOnce);\r\n }\r\n }\r\n }\r\n else {\r\n markStaticNode(tree, key, isOnce);\r\n }\r\n}\r\nfunction markStaticNode(node, key, isOnce) {\r\n node.isStatic = true;\r\n node.key = key;\r\n node.isOnce = isOnce;\r\n}\n\nfunction bindObjectListeners(data, value) {\r\n if (value) {\r\n if (!isPlainObject(value)) {\r\n process.env.NODE_ENV !== 'production' && warn('v-on without argument expects an Object value', this);\r\n }\r\n else {\r\n var on = (data.on = data.on ? extend({}, data.on) : {});\r\n for (var key in value) {\r\n var existing = on[key];\r\n var ours = value[key];\r\n on[key] = existing ? [].concat(existing, ours) : ours;\r\n }\r\n }\r\n }\r\n return data;\r\n}\n\nfunction resolveScopedSlots(fns, res, \r\n// the following are added in 2.6\r\nhasDynamicKeys, contentHashKey) {\r\n res = res || { $stable: !hasDynamicKeys };\r\n for (var i = 0; i < fns.length; i++) {\r\n var slot = fns[i];\r\n if (isArray(slot)) {\r\n resolveScopedSlots(slot, res, hasDynamicKeys);\r\n }\r\n else if (slot) {\r\n // marker for reverse proxying v-slot without scope on this.$slots\r\n // @ts-expect-error\r\n if (slot.proxy) {\r\n // @ts-expect-error\r\n slot.fn.proxy = true;\r\n }\r\n res[slot.key] = slot.fn;\r\n }\r\n }\r\n if (contentHashKey) {\r\n res.$key = contentHashKey;\r\n }\r\n return res;\r\n}\n\n// helper to process dynamic keys for dynamic arguments in v-bind and v-on.\r\nfunction bindDynamicKeys(baseObj, values) {\r\n for (var i = 0; i < values.length; i += 2) {\r\n var key = values[i];\r\n if (typeof key === 'string' && key) {\r\n baseObj[values[i]] = values[i + 1];\r\n }\r\n else if (process.env.NODE_ENV !== 'production' && key !== '' && key !== null) {\r\n // null is a special value for explicitly removing a binding\r\n warn(\"Invalid value for dynamic directive argument (expected string or null): \".concat(key), this);\r\n }\r\n }\r\n return baseObj;\r\n}\r\n// helper to dynamically append modifier runtime markers to event names.\r\n// ensure only append when value is already string, otherwise it will be cast\r\n// to string and cause the type check to miss.\r\nfunction prependModifier(value, symbol) {\r\n return typeof value === 'string' ? symbol + value : value;\r\n}\n\nfunction installRenderHelpers(target) {\r\n target._o = markOnce;\r\n target._n = toNumber;\r\n target._s = toString;\r\n target._l = renderList;\r\n target._t = renderSlot;\r\n target._q = looseEqual;\r\n target._i = looseIndexOf;\r\n target._m = renderStatic;\r\n target._f = resolveFilter;\r\n target._k = checkKeyCodes;\r\n target._b = bindObjectProps;\r\n target._v = createTextVNode;\r\n target._e = createEmptyVNode;\r\n target._u = resolveScopedSlots;\r\n target._g = bindObjectListeners;\r\n target._d = bindDynamicKeys;\r\n target._p = prependModifier;\r\n}\n\n/**\r\n * Runtime helper for resolving raw children VNodes into a slot object.\r\n */\r\nfunction resolveSlots(children, context) {\r\n if (!children || !children.length) {\r\n return {};\r\n }\r\n var slots = {};\r\n for (var i = 0, l = children.length; i < l; i++) {\r\n var child = children[i];\r\n var data = child.data;\r\n // remove slot attribute if the node is resolved as a Vue slot node\r\n if (data && data.attrs && data.attrs.slot) {\r\n delete data.attrs.slot;\r\n }\r\n // named slots should only be respected if the vnode was rendered in the\r\n // same context.\r\n if ((child.context === context || child.fnContext === context) &&\r\n data &&\r\n data.slot != null) {\r\n var name_1 = data.slot;\r\n var slot = slots[name_1] || (slots[name_1] = []);\r\n if (child.tag === 'template') {\r\n slot.push.apply(slot, child.children || []);\r\n }\r\n else {\r\n slot.push(child);\r\n }\r\n }\r\n else {\r\n (slots.default || (slots.default = [])).push(child);\r\n }\r\n }\r\n // ignore slots that contains only whitespace\r\n for (var name_2 in slots) {\r\n if (slots[name_2].every(isWhitespace)) {\r\n delete slots[name_2];\r\n }\r\n }\r\n return slots;\r\n}\r\nfunction isWhitespace(node) {\r\n return (node.isComment && !node.asyncFactory) || node.text === ' ';\r\n}\n\nfunction isAsyncPlaceholder(node) {\r\n // @ts-expect-error not really boolean type\r\n return node.isComment && node.asyncFactory;\r\n}\n\nfunction normalizeScopedSlots(ownerVm, scopedSlots, normalSlots, prevScopedSlots) {\r\n var res;\r\n var hasNormalSlots = Object.keys(normalSlots).length > 0;\r\n var isStable = scopedSlots ? !!scopedSlots.$stable : !hasNormalSlots;\r\n var key = scopedSlots && scopedSlots.$key;\r\n if (!scopedSlots) {\r\n res = {};\r\n }\r\n else if (scopedSlots._normalized) {\r\n // fast path 1: child component re-render only, parent did not change\r\n return scopedSlots._normalized;\r\n }\r\n else if (isStable &&\r\n prevScopedSlots &&\r\n prevScopedSlots !== emptyObject &&\r\n key === prevScopedSlots.$key &&\r\n !hasNormalSlots &&\r\n !prevScopedSlots.$hasNormal) {\r\n // fast path 2: stable scoped slots w/ no normal slots to proxy,\r\n // only need to normalize once\r\n return prevScopedSlots;\r\n }\r\n else {\r\n res = {};\r\n for (var key_1 in scopedSlots) {\r\n if (scopedSlots[key_1] && key_1[0] !== '$') {\r\n res[key_1] = normalizeScopedSlot(ownerVm, normalSlots, key_1, scopedSlots[key_1]);\r\n }\r\n }\r\n }\r\n // expose normal slots on scopedSlots\r\n for (var key_2 in normalSlots) {\r\n if (!(key_2 in res)) {\r\n res[key_2] = proxyNormalSlot(normalSlots, key_2);\r\n }\r\n }\r\n // avoriaz seems to mock a non-extensible $scopedSlots object\r\n // and when that is passed down this would cause an error\r\n if (scopedSlots && Object.isExtensible(scopedSlots)) {\r\n scopedSlots._normalized = res;\r\n }\r\n def(res, '$stable', isStable);\r\n def(res, '$key', key);\r\n def(res, '$hasNormal', hasNormalSlots);\r\n return res;\r\n}\r\nfunction normalizeScopedSlot(vm, normalSlots, key, fn) {\r\n var normalized = function () {\r\n var cur = currentInstance;\r\n setCurrentInstance(vm);\r\n var res = arguments.length ? fn.apply(null, arguments) : fn({});\r\n res =\r\n res && typeof res === 'object' && !isArray(res)\r\n ? [res] // single vnode\r\n : normalizeChildren(res);\r\n var vnode = res && res[0];\r\n setCurrentInstance(cur);\r\n return res &&\r\n (!vnode ||\r\n (res.length === 1 && vnode.isComment && !isAsyncPlaceholder(vnode))) // #9658, #10391\r\n ? undefined\r\n : res;\r\n };\r\n // this is a slot using the new v-slot syntax without scope. although it is\r\n // compiled as a scoped slot, render fn users would expect it to be present\r\n // on this.$slots because the usage is semantically a normal slot.\r\n if (fn.proxy) {\r\n Object.defineProperty(normalSlots, key, {\r\n get: normalized,\r\n enumerable: true,\r\n configurable: true\r\n });\r\n }\r\n return normalized;\r\n}\r\nfunction proxyNormalSlot(slots, key) {\r\n return function () { return slots[key]; };\r\n}\n\nfunction initSetup(vm) {\r\n var options = vm.$options;\r\n var setup = options.setup;\r\n if (setup) {\r\n var ctx = (vm._setupContext = createSetupContext(vm));\r\n setCurrentInstance(vm);\r\n pushTarget();\r\n var setupResult = invokeWithErrorHandling(setup, null, [vm._props || shallowReactive({}), ctx], vm, \"setup\");\r\n popTarget();\r\n setCurrentInstance();\r\n if (isFunction(setupResult)) {\r\n // render function\r\n // @ts-ignore\r\n options.render = setupResult;\r\n }\r\n else if (isObject(setupResult)) {\r\n // bindings\r\n if (process.env.NODE_ENV !== 'production' && setupResult instanceof VNode) {\r\n warn(\"setup() should not return VNodes directly - \" +\r\n \"return a render function instead.\");\r\n }\r\n vm._setupState = setupResult;\r\n // __sfc indicates compiled bindings from <script setup>\r\n if (!setupResult.__sfc) {\r\n for (var key in setupResult) {\r\n if (!isReserved(key)) {\r\n proxyWithRefUnwrap(vm, setupResult, key);\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n warn(\"Avoid using variables that start with _ or $ in setup().\");\r\n }\r\n }\r\n }\r\n else {\r\n // exposed for compiled render fn\r\n var proxy = (vm._setupProxy = {});\r\n for (var key in setupResult) {\r\n if (key !== '__sfc') {\r\n proxyWithRefUnwrap(proxy, setupResult, key);\r\n }\r\n }\r\n }\r\n }\r\n else if (process.env.NODE_ENV !== 'production' && setupResult !== undefined) {\r\n warn(\"setup() should return an object. Received: \".concat(setupResult === null ? 'null' : typeof setupResult));\r\n }\r\n }\r\n}\r\nfunction createSetupContext(vm) {\r\n var exposeCalled = false;\r\n return {\r\n get attrs() {\r\n if (!vm._attrsProxy) {\r\n var proxy = (vm._attrsProxy = {});\r\n def(proxy, '_v_attr_proxy', true);\r\n syncSetupProxy(proxy, vm.$attrs, emptyObject, vm, '$attrs');\r\n }\r\n return vm._attrsProxy;\r\n },\r\n get listeners() {\r\n if (!vm._listenersProxy) {\r\n var proxy = (vm._listenersProxy = {});\r\n syncSetupProxy(proxy, vm.$listeners, emptyObject, vm, '$listeners');\r\n }\r\n return vm._listenersProxy;\r\n },\r\n get slots() {\r\n return initSlotsProxy(vm);\r\n },\r\n emit: bind$1(vm.$emit, vm),\r\n expose: function (exposed) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (exposeCalled) {\r\n warn(\"expose() should be called only once per setup().\", vm);\r\n }\r\n exposeCalled = true;\r\n }\r\n if (exposed) {\r\n Object.keys(exposed).forEach(function (key) {\r\n return proxyWithRefUnwrap(vm, exposed, key);\r\n });\r\n }\r\n }\r\n };\r\n}\r\nfunction syncSetupProxy(to, from, prev, instance, type) {\r\n var changed = false;\r\n for (var key in from) {\r\n if (!(key in to)) {\r\n changed = true;\r\n defineProxyAttr(to, key, instance, type);\r\n }\r\n else if (from[key] !== prev[key]) {\r\n changed = true;\r\n }\r\n }\r\n for (var key in to) {\r\n if (!(key in from)) {\r\n changed = true;\r\n delete to[key];\r\n }\r\n }\r\n return changed;\r\n}\r\nfunction defineProxyAttr(proxy, key, instance, type) {\r\n Object.defineProperty(proxy, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: function () {\r\n return instance[type][key];\r\n }\r\n });\r\n}\r\nfunction initSlotsProxy(vm) {\r\n if (!vm._slotsProxy) {\r\n syncSetupSlots((vm._slotsProxy = {}), vm.$scopedSlots);\r\n }\r\n return vm._slotsProxy;\r\n}\r\nfunction syncSetupSlots(to, from) {\r\n for (var key in from) {\r\n to[key] = from[key];\r\n }\r\n for (var key in to) {\r\n if (!(key in from)) {\r\n delete to[key];\r\n }\r\n }\r\n}\r\n\nfunction initRender(vm) {\r\n vm._vnode = null; // the root of the child tree\r\n vm._staticTrees = null; // v-once cached trees\r\n var options = vm.$options;\r\n var parentVnode = (vm.$vnode = options._parentVnode); // the placeholder node in parent tree\r\n var renderContext = parentVnode && parentVnode.context;\r\n vm.$slots = resolveSlots(options._renderChildren, renderContext);\r\n vm.$scopedSlots = parentVnode\r\n ? normalizeScopedSlots(vm.$parent, parentVnode.data.scopedSlots, vm.$slots)\r\n : emptyObject;\r\n // bind the createElement fn to this instance\r\n // so that we get proper render context inside it.\r\n // args order: tag, data, children, normalizationType, alwaysNormalize\r\n // internal version is used by render functions compiled from templates\r\n // @ts-expect-error\r\n vm._c = function (a, b, c, d) { return createElement$1(vm, a, b, c, d, false); };\r\n // normalization is always applied for the public version, used in\r\n // user-written render functions.\r\n // @ts-expect-error\r\n vm.$createElement = function (a, b, c, d) { return createElement$1(vm, a, b, c, d, true); };\r\n // $attrs & $listeners are exposed for easier HOC creation.\r\n // they need to be reactive so that HOCs using them are always updated\r\n var parentData = parentVnode && parentVnode.data;\r\n /* istanbul ignore else */\r\n if (process.env.NODE_ENV !== 'production') {\r\n defineReactive(vm, '$attrs', (parentData && parentData.attrs) || emptyObject, function () {\r\n !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\r\n }, true);\r\n defineReactive(vm, '$listeners', options._parentListeners || emptyObject, function () {\r\n !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\r\n }, true);\r\n }\r\n else {\r\n defineReactive(vm, '$attrs', (parentData && parentData.attrs) || emptyObject, null, true);\r\n defineReactive(vm, '$listeners', options._parentListeners || emptyObject, null, true);\r\n }\r\n}\r\nvar currentRenderingInstance = null;\r\nfunction renderMixin(Vue) {\r\n // install runtime convenience helpers\r\n installRenderHelpers(Vue.prototype);\r\n Vue.prototype.$nextTick = function (fn) {\r\n return nextTick(fn, this);\r\n };\r\n Vue.prototype._render = function () {\r\n var vm = this;\r\n var _a = vm.$options, render = _a.render, _parentVnode = _a._parentVnode;\r\n if (_parentVnode && vm._isMounted) {\r\n vm.$scopedSlots = normalizeScopedSlots(vm.$parent, _parentVnode.data.scopedSlots, vm.$slots, vm.$scopedSlots);\r\n if (vm._slotsProxy) {\r\n syncSetupSlots(vm._slotsProxy, vm.$scopedSlots);\r\n }\r\n }\r\n // set parent vnode. this allows render functions to have access\r\n // to the data on the placeholder node.\r\n vm.$vnode = _parentVnode;\r\n // render self\r\n var vnode;\r\n try {\r\n // There's no need to maintain a stack because all render fns are called\r\n // separately from one another. Nested component's render fns are called\r\n // when parent component is patched.\r\n setCurrentInstance(vm);\r\n currentRenderingInstance = vm;\r\n vnode = render.call(vm._renderProxy, vm.$createElement);\r\n }\r\n catch (e) {\r\n handleError(e, vm, \"render\");\r\n // return error render result,\r\n // or previous vnode to prevent render error causing blank component\r\n /* istanbul ignore else */\r\n if (process.env.NODE_ENV !== 'production' && vm.$options.renderError) {\r\n try {\r\n vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\r\n }\r\n catch (e) {\r\n handleError(e, vm, \"renderError\");\r\n vnode = vm._vnode;\r\n }\r\n }\r\n else {\r\n vnode = vm._vnode;\r\n }\r\n }\r\n finally {\r\n currentRenderingInstance = null;\r\n setCurrentInstance();\r\n }\r\n // if the returned array contains only a single node, allow it\r\n if (isArray(vnode) && vnode.length === 1) {\r\n vnode = vnode[0];\r\n }\r\n // return empty vnode in case the render function errored out\r\n if (!(vnode instanceof VNode)) {\r\n if (process.env.NODE_ENV !== 'production' && isArray(vnode)) {\r\n warn('Multiple root nodes returned from render function. Render function ' +\r\n 'should return a single root node.', vm);\r\n }\r\n vnode = createEmptyVNode();\r\n }\r\n // set parent\r\n vnode.parent = _parentVnode;\r\n return vnode;\r\n };\r\n}\n\nfunction ensureCtor(comp, base) {\r\n if (comp.__esModule || (hasSymbol && comp[Symbol.toStringTag] === 'Module')) {\r\n comp = comp.default;\r\n }\r\n return isObject(comp) ? base.extend(comp) : comp;\r\n}\r\nfunction createAsyncPlaceholder(factory, data, context, children, tag) {\r\n var node = createEmptyVNode();\r\n node.asyncFactory = factory;\r\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\r\n return node;\r\n}\r\nfunction resolveAsyncComponent(factory, baseCtor) {\r\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\r\n return factory.errorComp;\r\n }\r\n if (isDef(factory.resolved)) {\r\n return factory.resolved;\r\n }\r\n var owner = currentRenderingInstance;\r\n if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\r\n // already pending\r\n factory.owners.push(owner);\r\n }\r\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\r\n return factory.loadingComp;\r\n }\r\n if (owner && !isDef(factory.owners)) {\r\n var owners_1 = (factory.owners = [owner]);\r\n var sync_1 = true;\r\n var timerLoading_1 = null;\r\n var timerTimeout_1 = null;\r\n owner.$on('hook:destroyed', function () { return remove$2(owners_1, owner); });\r\n var forceRender_1 = function (renderCompleted) {\r\n for (var i = 0, l = owners_1.length; i < l; i++) {\r\n owners_1[i].$forceUpdate();\r\n }\r\n if (renderCompleted) {\r\n owners_1.length = 0;\r\n if (timerLoading_1 !== null) {\r\n clearTimeout(timerLoading_1);\r\n timerLoading_1 = null;\r\n }\r\n if (timerTimeout_1 !== null) {\r\n clearTimeout(timerTimeout_1);\r\n timerTimeout_1 = null;\r\n }\r\n }\r\n };\r\n var resolve = once(function (res) {\r\n // cache resolved\r\n factory.resolved = ensureCtor(res, baseCtor);\r\n // invoke callbacks only if this is not a synchronous resolve\r\n // (async resolves are shimmed as synchronous during SSR)\r\n if (!sync_1) {\r\n forceRender_1(true);\r\n }\r\n else {\r\n owners_1.length = 0;\r\n }\r\n });\r\n var reject_1 = once(function (reason) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn(\"Failed to resolve async component: \".concat(String(factory)) +\r\n (reason ? \"\\nReason: \".concat(reason) : ''));\r\n if (isDef(factory.errorComp)) {\r\n factory.error = true;\r\n forceRender_1(true);\r\n }\r\n });\r\n var res_1 = factory(resolve, reject_1);\r\n if (isObject(res_1)) {\r\n if (isPromise(res_1)) {\r\n // () => Promise\r\n if (isUndef(factory.resolved)) {\r\n res_1.then(resolve, reject_1);\r\n }\r\n }\r\n else if (isPromise(res_1.component)) {\r\n res_1.component.then(resolve, reject_1);\r\n if (isDef(res_1.error)) {\r\n factory.errorComp = ensureCtor(res_1.error, baseCtor);\r\n }\r\n if (isDef(res_1.loading)) {\r\n factory.loadingComp = ensureCtor(res_1.loading, baseCtor);\r\n if (res_1.delay === 0) {\r\n factory.loading = true;\r\n }\r\n else {\r\n // @ts-expect-error NodeJS timeout type\r\n timerLoading_1 = setTimeout(function () {\r\n timerLoading_1 = null;\r\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\r\n factory.loading = true;\r\n forceRender_1(false);\r\n }\r\n }, res_1.delay || 200);\r\n }\r\n }\r\n if (isDef(res_1.timeout)) {\r\n // @ts-expect-error NodeJS timeout type\r\n timerTimeout_1 = setTimeout(function () {\r\n timerTimeout_1 = null;\r\n if (isUndef(factory.resolved)) {\r\n reject_1(process.env.NODE_ENV !== 'production' ? \"timeout (\".concat(res_1.timeout, \"ms)\") : null);\r\n }\r\n }, res_1.timeout);\r\n }\r\n }\r\n }\r\n sync_1 = false;\r\n // return in case resolved synchronously\r\n return factory.loading ? factory.loadingComp : factory.resolved;\r\n }\r\n}\n\nfunction getFirstComponentChild(children) {\r\n if (isArray(children)) {\r\n for (var i = 0; i < children.length; i++) {\r\n var c = children[i];\r\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\r\n return c;\r\n }\r\n }\r\n }\r\n}\n\nvar SIMPLE_NORMALIZE = 1;\r\nvar ALWAYS_NORMALIZE = 2;\r\n// wrapper function for providing a more flexible interface\r\n// without getting yelled at by flow\r\nfunction createElement$1(context, tag, data, children, normalizationType, alwaysNormalize) {\r\n if (isArray(data) || isPrimitive(data)) {\r\n normalizationType = children;\r\n children = data;\r\n data = undefined;\r\n }\r\n if (isTrue(alwaysNormalize)) {\r\n normalizationType = ALWAYS_NORMALIZE;\r\n }\r\n return _createElement(context, tag, data, children, normalizationType);\r\n}\r\nfunction _createElement(context, tag, data, children, normalizationType) {\r\n if (isDef(data) && isDef(data.__ob__)) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn(\"Avoid using observed data object as vnode data: \".concat(JSON.stringify(data), \"\\n\") + 'Always create fresh vnode data objects in each render!', context);\r\n return createEmptyVNode();\r\n }\r\n // object syntax in v-bind\r\n if (isDef(data) && isDef(data.is)) {\r\n tag = data.is;\r\n }\r\n if (!tag) {\r\n // in case of component :is set to falsy value\r\n return createEmptyVNode();\r\n }\r\n // warn against non-primitive key\r\n if (process.env.NODE_ENV !== 'production' && isDef(data) && isDef(data.key) && !isPrimitive(data.key)) {\r\n warn('Avoid using non-primitive value as key, ' +\r\n 'use string/number value instead.', context);\r\n }\r\n // support single function children as default scoped slot\r\n if (isArray(children) && isFunction(children[0])) {\r\n data = data || {};\r\n data.scopedSlots = { default: children[0] };\r\n children.length = 0;\r\n }\r\n if (normalizationType === ALWAYS_NORMALIZE) {\r\n children = normalizeChildren(children);\r\n }\r\n else if (normalizationType === SIMPLE_NORMALIZE) {\r\n children = simpleNormalizeChildren(children);\r\n }\r\n var vnode, ns;\r\n if (typeof tag === 'string') {\r\n var Ctor = void 0;\r\n ns = (context.$vnode && context.$vnode.ns) || config$1.getTagNamespace(tag);\r\n if (config$1.isReservedTag(tag)) {\r\n // platform built-in elements\r\n if (process.env.NODE_ENV !== 'production' &&\r\n isDef(data) &&\r\n isDef(data.nativeOn) &&\r\n data.tag !== 'component') {\r\n warn(\"The .native modifier for v-on is only valid on components but it was used on <\".concat(tag, \">.\"), context);\r\n }\r\n vnode = new VNode(config$1.parsePlatformTagName(tag), data, children, undefined, undefined, context);\r\n }\r\n else if ((!data || !data.pre) &&\r\n isDef((Ctor = resolveAsset(context.$options, 'components', tag)))) {\r\n // component\r\n vnode = createComponent(Ctor, data, context, children, tag);\r\n }\r\n else {\r\n // unknown or unlisted namespaced elements\r\n // check at runtime because it may get assigned a namespace when its\r\n // parent normalizes children\r\n vnode = new VNode(tag, data, children, undefined, undefined, context);\r\n }\r\n }\r\n else {\r\n // direct component options / constructor\r\n vnode = createComponent(tag, data, context, children);\r\n }\r\n if (isArray(vnode)) {\r\n return vnode;\r\n }\r\n else if (isDef(vnode)) {\r\n if (isDef(ns))\r\n applyNS(vnode, ns);\r\n if (isDef(data))\r\n registerDeepBindings(data);\r\n return vnode;\r\n }\r\n else {\r\n return createEmptyVNode();\r\n }\r\n}\r\nfunction applyNS(vnode, ns, force) {\r\n vnode.ns = ns;\r\n if (vnode.tag === 'foreignObject') {\r\n // use default namespace inside foreignObject\r\n ns = undefined;\r\n force = true;\r\n }\r\n if (isDef(vnode.children)) {\r\n for (var i = 0, l = vnode.children.length; i < l; i++) {\r\n var child = vnode.children[i];\r\n if (isDef(child.tag) &&\r\n (isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\r\n applyNS(child, ns, force);\r\n }\r\n }\r\n }\r\n}\r\n// ref #5318\r\n// necessary to ensure parent re-render when deep bindings like :style and\r\n// :class are used on slot nodes\r\nfunction registerDeepBindings(data) {\r\n if (isObject(data.style)) {\r\n traverse(data.style);\r\n }\r\n if (isObject(data.class)) {\r\n traverse(data.class);\r\n }\r\n}\n\nfunction handleError(err, vm, info) {\r\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\r\n // See: https://github.com/vuejs/vuex/issues/1505\r\n pushTarget();\r\n try {\r\n if (vm) {\r\n var cur = vm;\r\n while ((cur = cur.$parent)) {\r\n var hooks = cur.$options.errorCaptured;\r\n if (hooks) {\r\n for (var i = 0; i < hooks.length; i++) {\r\n try {\r\n var capture = hooks[i].call(cur, err, vm, info) === false;\r\n if (capture)\r\n return;\r\n }\r\n catch (e) {\r\n globalHandleError(e, cur, 'errorCaptured hook');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n globalHandleError(err, vm, info);\r\n }\r\n finally {\r\n popTarget();\r\n }\r\n}\r\nfunction invokeWithErrorHandling(handler, context, args, vm, info) {\r\n var res;\r\n try {\r\n res = args ? handler.apply(context, args) : handler.call(context);\r\n if (res && !res._isVue && isPromise(res) && !res._handled) {\r\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\r\n res._handled = true;\r\n }\r\n }\r\n catch (e) {\r\n handleError(e, vm, info);\r\n }\r\n return res;\r\n}\r\nfunction globalHandleError(err, vm, info) {\r\n if (config$1.errorHandler) {\r\n try {\r\n return config$1.errorHandler.call(null, err, vm, info);\r\n }\r\n catch (e) {\r\n // if the user intentionally throws the original error in the handler,\r\n // do not log it twice\r\n if (e !== err) {\r\n logError(e, null, 'config.errorHandler');\r\n }\r\n }\r\n }\r\n logError(err, vm, info);\r\n}\r\nfunction logError(err, vm, info) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n warn(\"Error in \".concat(info, \": \\\"\").concat(err.toString(), \"\\\"\"), vm);\r\n }\r\n /* istanbul ignore else */\r\n if (inBrowser && typeof console !== 'undefined') {\r\n console.error(err);\r\n }\r\n else {\r\n throw err;\r\n }\r\n}\n\n/* globals MutationObserver */\r\nvar isUsingMicroTask = false;\r\nvar callbacks = [];\r\nvar pending = false;\r\nfunction flushCallbacks() {\r\n pending = false;\r\n var copies = callbacks.slice(0);\r\n callbacks.length = 0;\r\n for (var i = 0; i < copies.length; i++) {\r\n copies[i]();\r\n }\r\n}\r\n// Here we have async deferring wrappers using microtasks.\r\n// In 2.5 we used (macro) tasks (in combination with microtasks).\r\n// However, it has subtle problems when state is changed right before repaint\r\n// (e.g. #6813, out-in transitions).\r\n// Also, using (macro) tasks in event handler would cause some weird behaviors\r\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\r\n// So we now use microtasks everywhere, again.\r\n// A major drawback of this tradeoff is that there are some scenarios\r\n// where microtasks have too high a priority and fire in between supposedly\r\n// sequential events (e.g. #4521, #6690, which have workarounds)\r\n// or even between bubbling of the same event (#6566).\r\nvar timerFunc;\r\n// The nextTick behavior leverages the microtask queue, which can be accessed\r\n// via either native Promise.then or MutationObserver.\r\n// MutationObserver has wider support, however it is seriously bugged in\r\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\r\n// completely stops working after triggering a few times... so, if native\r\n// Promise is available, we will use it:\r\n/* istanbul ignore next, $flow-disable-line */\r\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\r\n var p_1 = Promise.resolve();\r\n timerFunc = function () {\r\n p_1.then(flushCallbacks);\r\n // In problematic UIWebViews, Promise.then doesn't completely break, but\r\n // it can get stuck in a weird state where callbacks are pushed into the\r\n // microtask queue but the queue isn't being flushed, until the browser\r\n // needs to do some other work, e.g. handle a timer. Therefore we can\r\n // \"force\" the microtask queue to be flushed by adding an empty timer.\r\n if (isIOS$1)\r\n setTimeout(noop);\r\n };\r\n isUsingMicroTask = true;\r\n}\r\nelse if (!isIE$1 &&\r\n typeof MutationObserver !== 'undefined' &&\r\n (isNative(MutationObserver) ||\r\n // PhantomJS and iOS 7.x\r\n MutationObserver.toString() === '[object MutationObserverConstructor]')) {\r\n // Use MutationObserver where native Promise is not available,\r\n // e.g. PhantomJS, iOS7, Android 4.4\r\n // (#6466 MutationObserver is unreliable in IE11)\r\n var counter_1 = 1;\r\n var observer = new MutationObserver(flushCallbacks);\r\n var textNode_1 = document.createTextNode(String(counter_1));\r\n observer.observe(textNode_1, {\r\n characterData: true\r\n });\r\n timerFunc = function () {\r\n counter_1 = (counter_1 + 1) % 2;\r\n textNode_1.data = String(counter_1);\r\n };\r\n isUsingMicroTask = true;\r\n}\r\nelse if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\r\n // Fallback to setImmediate.\r\n // Technically it leverages the (macro) task queue,\r\n // but it is still a better choice than setTimeout.\r\n timerFunc = function () {\r\n setImmediate(flushCallbacks);\r\n };\r\n}\r\nelse {\r\n // Fallback to setTimeout.\r\n timerFunc = function () {\r\n setTimeout(flushCallbacks, 0);\r\n };\r\n}\r\n/**\r\n * @internal\r\n */\r\nfunction nextTick(cb, ctx) {\r\n var _resolve;\r\n callbacks.push(function () {\r\n if (cb) {\r\n try {\r\n cb.call(ctx);\r\n }\r\n catch (e) {\r\n handleError(e, ctx, 'nextTick');\r\n }\r\n }\r\n else if (_resolve) {\r\n _resolve(ctx);\r\n }\r\n });\r\n if (!pending) {\r\n pending = true;\r\n timerFunc();\r\n }\r\n // $flow-disable-line\r\n if (!cb && typeof Promise !== 'undefined') {\r\n return new Promise(function (resolve) {\r\n _resolve = resolve;\r\n });\r\n }\r\n}\n\n/**\r\n * Note: also update dist/vue.runtime.mjs when adding new exports to this file.\r\n */\r\nvar version = '2.7.10';\r\n\nvar seenObjects = new _Set();\r\n/**\r\n * Recursively traverse an object to evoke all converted\r\n * getters, so that every nested property inside the object\r\n * is collected as a \"deep\" dependency.\r\n */\r\nfunction traverse(val) {\r\n _traverse(val, seenObjects);\r\n seenObjects.clear();\r\n return val;\r\n}\r\nfunction _traverse(val, seen) {\r\n var i, keys;\r\n var isA = isArray(val);\r\n if ((!isA && !isObject(val)) ||\r\n Object.isFrozen(val) ||\r\n val instanceof VNode) {\r\n return;\r\n }\r\n if (val.__ob__) {\r\n var depId = val.__ob__.dep.id;\r\n if (seen.has(depId)) {\r\n return;\r\n }\r\n seen.add(depId);\r\n }\r\n if (isA) {\r\n i = val.length;\r\n while (i--)\r\n _traverse(val[i], seen);\r\n }\r\n else if (isRef(val)) {\r\n _traverse(val.value, seen);\r\n }\r\n else {\r\n keys = Object.keys(val);\r\n i = keys.length;\r\n while (i--)\r\n _traverse(val[keys[i]], seen);\r\n }\r\n}\n\nvar uid$1 = 0;\r\n/**\r\n * A watcher parses an expression, collects dependencies,\r\n * and fires callback when the expression value changes.\r\n * This is used for both the $watch() api and directives.\r\n * @internal\r\n */\r\nvar Watcher = /** @class */ (function () {\r\n function Watcher(vm, expOrFn, cb, options, isRenderWatcher) {\r\n recordEffectScope(this, \r\n // if the active effect scope is manually created (not a component scope),\r\n // prioritize it\r\n activeEffectScope && !activeEffectScope._vm\r\n ? activeEffectScope\r\n : vm\r\n ? vm._scope\r\n : undefined);\r\n if ((this.vm = vm) && isRenderWatcher) {\r\n vm._watcher = this;\r\n }\r\n // options\r\n if (options) {\r\n this.deep = !!options.deep;\r\n this.user = !!options.user;\r\n this.lazy = !!options.lazy;\r\n this.sync = !!options.sync;\r\n this.before = options.before;\r\n if (process.env.NODE_ENV !== 'production') {\r\n this.onTrack = options.onTrack;\r\n this.onTrigger = options.onTrigger;\r\n }\r\n }\r\n else {\r\n this.deep = this.user = this.lazy = this.sync = false;\r\n }\r\n this.cb = cb;\r\n this.id = ++uid$1; // uid for batching\r\n this.active = true;\r\n this.post = false;\r\n this.dirty = this.lazy; // for lazy watchers\r\n this.deps = [];\r\n this.newDeps = [];\r\n this.depIds = new _Set();\r\n this.newDepIds = new _Set();\r\n this.expression = process.env.NODE_ENV !== 'production' ? expOrFn.toString() : '';\r\n // parse expression for getter\r\n if (isFunction(expOrFn)) {\r\n this.getter = expOrFn;\r\n }\r\n else {\r\n this.getter = parsePath(expOrFn);\r\n if (!this.getter) {\r\n this.getter = noop;\r\n process.env.NODE_ENV !== 'production' &&\r\n warn(\"Failed watching path: \\\"\".concat(expOrFn, \"\\\" \") +\r\n 'Watcher only accepts simple dot-delimited paths. ' +\r\n 'For full control, use a function instead.', vm);\r\n }\r\n }\r\n this.value = this.lazy ? undefined : this.get();\r\n }\r\n /**\r\n * Evaluate the getter, and re-collect dependencies.\r\n */\r\n Watcher.prototype.get = function () {\r\n pushTarget(this);\r\n var value;\r\n var vm = this.vm;\r\n try {\r\n value = this.getter.call(vm, vm);\r\n }\r\n catch (e) {\r\n if (this.user) {\r\n handleError(e, vm, \"getter for watcher \\\"\".concat(this.expression, \"\\\"\"));\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n finally {\r\n // \"touch\" every property so they are all tracked as\r\n // dependencies for deep watching\r\n if (this.deep) {\r\n traverse(value);\r\n }\r\n popTarget();\r\n this.cleanupDeps();\r\n }\r\n return value;\r\n };\r\n /**\r\n * Add a dependency to this directive.\r\n */\r\n Watcher.prototype.addDep = function (dep) {\r\n var id = dep.id;\r\n if (!this.newDepIds.has(id)) {\r\n this.newDepIds.add(id);\r\n this.newDeps.push(dep);\r\n if (!this.depIds.has(id)) {\r\n dep.addSub(this);\r\n }\r\n }\r\n };\r\n /**\r\n * Clean up for dependency collection.\r\n */\r\n Watcher.prototype.cleanupDeps = function () {\r\n var i = this.deps.length;\r\n while (i--) {\r\n var dep = this.deps[i];\r\n if (!this.newDepIds.has(dep.id)) {\r\n dep.removeSub(this);\r\n }\r\n }\r\n var tmp = this.depIds;\r\n this.depIds = this.newDepIds;\r\n this.newDepIds = tmp;\r\n this.newDepIds.clear();\r\n tmp = this.deps;\r\n this.deps = this.newDeps;\r\n this.newDeps = tmp;\r\n this.newDeps.length = 0;\r\n };\r\n /**\r\n * Subscriber interface.\r\n * Will be called when a dependency changes.\r\n */\r\n Watcher.prototype.update = function () {\r\n /* istanbul ignore else */\r\n if (this.lazy) {\r\n this.dirty = true;\r\n }\r\n else if (this.sync) {\r\n this.run();\r\n }\r\n else {\r\n queueWatcher(this);\r\n }\r\n };\r\n /**\r\n * Scheduler job interface.\r\n * Will be called by the scheduler.\r\n */\r\n Watcher.prototype.run = function () {\r\n if (this.active) {\r\n var value = this.get();\r\n if (value !== this.value ||\r\n // Deep watchers and watchers on Object/Arrays should fire even\r\n // when the value is the same, because the value may\r\n // have mutated.\r\n isObject(value) ||\r\n this.deep) {\r\n // set new value\r\n var oldValue = this.value;\r\n this.value = value;\r\n if (this.user) {\r\n var info = \"callback for watcher \\\"\".concat(this.expression, \"\\\"\");\r\n invokeWithErrorHandling(this.cb, this.vm, [value, oldValue], this.vm, info);\r\n }\r\n else {\r\n this.cb.call(this.vm, value, oldValue);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Evaluate the value of the watcher.\r\n * This only gets called for lazy watchers.\r\n */\r\n Watcher.prototype.evaluate = function () {\r\n this.value = this.get();\r\n this.dirty = false;\r\n };\r\n /**\r\n * Depend on all deps collected by this watcher.\r\n */\r\n Watcher.prototype.depend = function () {\r\n var i = this.deps.length;\r\n while (i--) {\r\n this.deps[i].depend();\r\n }\r\n };\r\n /**\r\n * Remove self from all dependencies' subscriber list.\r\n */\r\n Watcher.prototype.teardown = function () {\r\n if (this.vm && !this.vm._isBeingDestroyed) {\r\n remove$2(this.vm._scope.effects, this);\r\n }\r\n if (this.active) {\r\n var i = this.deps.length;\r\n while (i--) {\r\n this.deps[i].removeSub(this);\r\n }\r\n this.active = false;\r\n if (this.onStop) {\r\n this.onStop();\r\n }\r\n }\r\n };\r\n return Watcher;\r\n}());\n\nvar mark;\r\nvar measure;\r\nif (process.env.NODE_ENV !== 'production') {\r\n var perf_1 = inBrowser && window.performance;\r\n /* istanbul ignore if */\r\n if (perf_1 &&\r\n // @ts-ignore\r\n perf_1.mark &&\r\n // @ts-ignore\r\n perf_1.measure &&\r\n // @ts-ignore\r\n perf_1.clearMarks &&\r\n // @ts-ignore\r\n perf_1.clearMeasures) {\r\n mark = function (tag) { return perf_1.mark(tag); };\r\n measure = function (name, startTag, endTag) {\r\n perf_1.measure(name, startTag, endTag);\r\n perf_1.clearMarks(startTag);\r\n perf_1.clearMarks(endTag);\r\n // perf.clearMeasures(name)\r\n };\r\n }\r\n}\n\nfunction initEvents(vm) {\r\n vm._events = Object.create(null);\r\n vm._hasHookEvent = false;\r\n // init parent attached events\r\n var listeners = vm.$options._parentListeners;\r\n if (listeners) {\r\n updateComponentListeners(vm, listeners);\r\n }\r\n}\r\nvar target$1;\r\nfunction add$1(event, fn) {\r\n target$1.$on(event, fn);\r\n}\r\nfunction remove$1(event, fn) {\r\n target$1.$off(event, fn);\r\n}\r\nfunction createOnceHandler$1(event, fn) {\r\n var _target = target$1;\r\n return function onceHandler() {\r\n var res = fn.apply(null, arguments);\r\n if (res !== null) {\r\n _target.$off(event, onceHandler);\r\n }\r\n };\r\n}\r\nfunction updateComponentListeners(vm, listeners, oldListeners) {\r\n target$1 = vm;\r\n updateListeners(listeners, oldListeners || {}, add$1, remove$1, createOnceHandler$1, vm);\r\n target$1 = undefined;\r\n}\r\nfunction eventsMixin(Vue) {\r\n var hookRE = /^hook:/;\r\n Vue.prototype.$on = function (event, fn) {\r\n var vm = this;\r\n if (isArray(event)) {\r\n for (var i = 0, l = event.length; i < l; i++) {\r\n vm.$on(event[i], fn);\r\n }\r\n }\r\n else {\r\n (vm._events[event] || (vm._events[event] = [])).push(fn);\r\n // optimize hook:event cost by using a boolean flag marked at registration\r\n // instead of a hash lookup\r\n if (hookRE.test(event)) {\r\n vm._hasHookEvent = true;\r\n }\r\n }\r\n return vm;\r\n };\r\n Vue.prototype.$once = function (event, fn) {\r\n var vm = this;\r\n function on() {\r\n vm.$off(event, on);\r\n fn.apply(vm, arguments);\r\n }\r\n on.fn = fn;\r\n vm.$on(event, on);\r\n return vm;\r\n };\r\n Vue.prototype.$off = function (event, fn) {\r\n var vm = this;\r\n // all\r\n if (!arguments.length) {\r\n vm._events = Object.create(null);\r\n return vm;\r\n }\r\n // array of events\r\n if (isArray(event)) {\r\n for (var i_1 = 0, l = event.length; i_1 < l; i_1++) {\r\n vm.$off(event[i_1], fn);\r\n }\r\n return vm;\r\n }\r\n // specific event\r\n var cbs = vm._events[event];\r\n if (!cbs) {\r\n return vm;\r\n }\r\n if (!fn) {\r\n vm._events[event] = null;\r\n return vm;\r\n }\r\n // specific handler\r\n var cb;\r\n var i = cbs.length;\r\n while (i--) {\r\n cb = cbs[i];\r\n if (cb === fn || cb.fn === fn) {\r\n cbs.splice(i, 1);\r\n break;\r\n }\r\n }\r\n return vm;\r\n };\r\n Vue.prototype.$emit = function (event) {\r\n var vm = this;\r\n if (process.env.NODE_ENV !== 'production') {\r\n var lowerCaseEvent = event.toLowerCase();\r\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\r\n tip(\"Event \\\"\".concat(lowerCaseEvent, \"\\\" is emitted in component \") +\r\n \"\".concat(formatComponentName(vm), \" but the handler is registered for \\\"\").concat(event, \"\\\". \") +\r\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\r\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\r\n \"You should probably use \\\"\".concat(hyphenate(event), \"\\\" instead of \\\"\").concat(event, \"\\\".\"));\r\n }\r\n }\r\n var cbs = vm._events[event];\r\n if (cbs) {\r\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\r\n var args = toArray(arguments, 1);\r\n var info = \"event handler for \\\"\".concat(event, \"\\\"\");\r\n for (var i = 0, l = cbs.length; i < l; i++) {\r\n invokeWithErrorHandling(cbs[i], vm, args, vm, info);\r\n }\r\n }\r\n return vm;\r\n };\r\n}\n\nvar activeInstance = null;\r\nvar isUpdatingChildComponent = false;\r\nfunction setActiveInstance(vm) {\r\n var prevActiveInstance = activeInstance;\r\n activeInstance = vm;\r\n return function () {\r\n activeInstance = prevActiveInstance;\r\n };\r\n}\r\nfunction initLifecycle(vm) {\r\n var options = vm.$options;\r\n // locate first non-abstract parent\r\n var parent = options.parent;\r\n if (parent && !options.abstract) {\r\n while (parent.$options.abstract && parent.$parent) {\r\n parent = parent.$parent;\r\n }\r\n parent.$children.push(vm);\r\n }\r\n vm.$parent = parent;\r\n vm.$root = parent ? parent.$root : vm;\r\n vm.$children = [];\r\n vm.$refs = {};\r\n vm._provided = parent ? parent._provided : Object.create(null);\r\n vm._watcher = null;\r\n vm._inactive = null;\r\n vm._directInactive = false;\r\n vm._isMounted = false;\r\n vm._isDestroyed = false;\r\n vm._isBeingDestroyed = false;\r\n}\r\nfunction lifecycleMixin(Vue) {\r\n Vue.prototype._update = function (vnode, hydrating) {\r\n var vm = this;\r\n var prevEl = vm.$el;\r\n var prevVnode = vm._vnode;\r\n var restoreActiveInstance = setActiveInstance(vm);\r\n vm._vnode = vnode;\r\n // Vue.prototype.__patch__ is injected in entry points\r\n // based on the rendering backend used.\r\n if (!prevVnode) {\r\n // initial render\r\n vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\r\n }\r\n else {\r\n // updates\r\n vm.$el = vm.__patch__(prevVnode, vnode);\r\n }\r\n restoreActiveInstance();\r\n // update __vue__ reference\r\n if (prevEl) {\r\n prevEl.__vue__ = null;\r\n }\r\n if (vm.$el) {\r\n vm.$el.__vue__ = vm;\r\n }\r\n // if parent is an HOC, update its $el as well\r\n var wrapper = vm;\r\n while (wrapper &&\r\n wrapper.$vnode &&\r\n wrapper.$parent &&\r\n wrapper.$vnode === wrapper.$parent._vnode) {\r\n wrapper.$parent.$el = wrapper.$el;\r\n wrapper = wrapper.$parent;\r\n }\r\n // updated hook is called by the scheduler to ensure that children are\r\n // updated in a parent's updated hook.\r\n };\r\n Vue.prototype.$forceUpdate = function () {\r\n var vm = this;\r\n if (vm._watcher) {\r\n vm._watcher.update();\r\n }\r\n };\r\n Vue.prototype.$destroy = function () {\r\n var vm = this;\r\n if (vm._isBeingDestroyed) {\r\n return;\r\n }\r\n callHook$1(vm, 'beforeDestroy');\r\n vm._isBeingDestroyed = true;\r\n // remove self from parent\r\n var parent = vm.$parent;\r\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\r\n remove$2(parent.$children, vm);\r\n }\r\n // teardown scope. this includes both the render watcher and other\r\n // watchers created\r\n vm._scope.stop();\r\n // remove reference from data ob\r\n // frozen object may not have observer.\r\n if (vm._data.__ob__) {\r\n vm._data.__ob__.vmCount--;\r\n }\r\n // call the last hook...\r\n vm._isDestroyed = true;\r\n // invoke destroy hooks on current rendered tree\r\n vm.__patch__(vm._vnode, null);\r\n // fire destroyed hook\r\n callHook$1(vm, 'destroyed');\r\n // turn off all instance listeners.\r\n vm.$off();\r\n // remove __vue__ reference\r\n if (vm.$el) {\r\n vm.$el.__vue__ = null;\r\n }\r\n // release circular reference (#6759)\r\n if (vm.$vnode) {\r\n vm.$vnode.parent = null;\r\n }\r\n };\r\n}\r\nfunction mountComponent(vm, el, hydrating) {\r\n vm.$el = el;\r\n if (!vm.$options.render) {\r\n // @ts-expect-error invalid type\r\n vm.$options.render = createEmptyVNode;\r\n if (process.env.NODE_ENV !== 'production') {\r\n /* istanbul ignore if */\r\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\r\n vm.$options.el ||\r\n el) {\r\n warn('You are using the runtime-only build of Vue where the template ' +\r\n 'compiler is not available. Either pre-compile the templates into ' +\r\n 'render functions, or use the compiler-included build.', vm);\r\n }\r\n else {\r\n warn('Failed to mount component: template or render function not defined.', vm);\r\n }\r\n }\r\n }\r\n callHook$1(vm, 'beforeMount');\r\n var updateComponent;\r\n /* istanbul ignore if */\r\n if (process.env.NODE_ENV !== 'production' && config$1.performance && mark) {\r\n updateComponent = function () {\r\n var name = vm._name;\r\n var id = vm._uid;\r\n var startTag = \"vue-perf-start:\".concat(id);\r\n var endTag = \"vue-perf-end:\".concat(id);\r\n mark(startTag);\r\n var vnode = vm._render();\r\n mark(endTag);\r\n measure(\"vue \".concat(name, \" render\"), startTag, endTag);\r\n mark(startTag);\r\n vm._update(vnode, hydrating);\r\n mark(endTag);\r\n measure(\"vue \".concat(name, \" patch\"), startTag, endTag);\r\n };\r\n }\r\n else {\r\n updateComponent = function () {\r\n vm._update(vm._render(), hydrating);\r\n };\r\n }\r\n var watcherOptions = {\r\n before: function () {\r\n if (vm._isMounted && !vm._isDestroyed) {\r\n callHook$1(vm, 'beforeUpdate');\r\n }\r\n }\r\n };\r\n if (process.env.NODE_ENV !== 'production') {\r\n watcherOptions.onTrack = function (e) { return callHook$1(vm, 'renderTracked', [e]); };\r\n watcherOptions.onTrigger = function (e) { return callHook$1(vm, 'renderTriggered', [e]); };\r\n }\r\n // we set this to vm._watcher inside the watcher's constructor\r\n // since the watcher's initial patch may call $forceUpdate (e.g. inside child\r\n // component's mounted hook), which relies on vm._watcher being already defined\r\n new Watcher(vm, updateComponent, noop, watcherOptions, true /* isRenderWatcher */);\r\n hydrating = false;\r\n // flush buffer for flush: \"pre\" watchers queued in setup()\r\n var preWatchers = vm._preWatchers;\r\n if (preWatchers) {\r\n for (var i = 0; i < preWatchers.length; i++) {\r\n preWatchers[i].run();\r\n }\r\n }\r\n // manually mounted instance, call mounted on self\r\n // mounted is called for render-created child components in its inserted hook\r\n if (vm.$vnode == null) {\r\n vm._isMounted = true;\r\n callHook$1(vm, 'mounted');\r\n }\r\n return vm;\r\n}\r\nfunction updateChildComponent(vm, propsData, listeners, parentVnode, renderChildren) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n isUpdatingChildComponent = true;\r\n }\r\n // determine whether component has slot children\r\n // we need to do this before overwriting $options._renderChildren.\r\n // check if there are dynamic scopedSlots (hand-written or compiled but with\r\n // dynamic slot names). Static scoped slots compiled from template has the\r\n // \"$stable\" marker.\r\n var newScopedSlots = parentVnode.data.scopedSlots;\r\n var oldScopedSlots = vm.$scopedSlots;\r\n var hasDynamicScopedSlot = !!((newScopedSlots && !newScopedSlots.$stable) ||\r\n (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\r\n (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key) ||\r\n (!newScopedSlots && vm.$scopedSlots.$key));\r\n // Any static slot children from the parent may have changed during parent's\r\n // update. Dynamic scoped slots may also have changed. In such cases, a forced\r\n // update is necessary to ensure correctness.\r\n var needsForceUpdate = !!(renderChildren || // has new static slots\r\n vm.$options._renderChildren || // has old static slots\r\n hasDynamicScopedSlot);\r\n var prevVNode = vm.$vnode;\r\n vm.$options._parentVnode = parentVnode;\r\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\r\n if (vm._vnode) {\r\n // update child tree's parent\r\n vm._vnode.parent = parentVnode;\r\n }\r\n vm.$options._renderChildren = renderChildren;\r\n // update $attrs and $listeners hash\r\n // these are also reactive so they may trigger child update if the child\r\n // used them during render\r\n var attrs = parentVnode.data.attrs || emptyObject;\r\n if (vm._attrsProxy) {\r\n // force update if attrs are accessed and has changed since it may be\r\n // passed to a child component.\r\n if (syncSetupProxy(vm._attrsProxy, attrs, (prevVNode.data && prevVNode.data.attrs) || emptyObject, vm, '$attrs')) {\r\n needsForceUpdate = true;\r\n }\r\n }\r\n vm.$attrs = attrs;\r\n // update listeners\r\n listeners = listeners || emptyObject;\r\n var prevListeners = vm.$options._parentListeners;\r\n if (vm._listenersProxy) {\r\n syncSetupProxy(vm._listenersProxy, listeners, prevListeners || emptyObject, vm, '$listeners');\r\n }\r\n vm.$listeners = vm.$options._parentListeners = listeners;\r\n updateComponentListeners(vm, listeners, prevListeners);\r\n // update props\r\n if (propsData && vm.$options.props) {\r\n toggleObserving(false);\r\n var props = vm._props;\r\n var propKeys = vm.$options._propKeys || [];\r\n for (var i = 0; i < propKeys.length; i++) {\r\n var key = propKeys[i];\r\n var propOptions = vm.$options.props; // wtf flow?\r\n props[key] = validateProp(key, propOptions, propsData, vm);\r\n }\r\n toggleObserving(true);\r\n // keep a copy of raw propsData\r\n vm.$options.propsData = propsData;\r\n }\r\n // resolve slots + force update if has children\r\n if (needsForceUpdate) {\r\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\r\n vm.$forceUpdate();\r\n }\r\n if (process.env.NODE_ENV !== 'production') {\r\n isUpdatingChildComponent = false;\r\n }\r\n}\r\nfunction isInInactiveTree(vm) {\r\n while (vm && (vm = vm.$parent)) {\r\n if (vm._inactive)\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction activateChildComponent(vm, direct) {\r\n if (direct) {\r\n vm._directInactive = false;\r\n if (isInInactiveTree(vm)) {\r\n return;\r\n }\r\n }\r\n else if (vm._directInactive) {\r\n return;\r\n }\r\n if (vm._inactive || vm._inactive === null) {\r\n vm._inactive = false;\r\n for (var i = 0; i < vm.$children.length; i++) {\r\n activateChildComponent(vm.$children[i]);\r\n }\r\n callHook$1(vm, 'activated');\r\n }\r\n}\r\nfunction deactivateChildComponent(vm, direct) {\r\n if (direct) {\r\n vm._directInactive = true;\r\n if (isInInactiveTree(vm)) {\r\n return;\r\n }\r\n }\r\n if (!vm._inactive) {\r\n vm._inactive = true;\r\n for (var i = 0; i < vm.$children.length; i++) {\r\n deactivateChildComponent(vm.$children[i]);\r\n }\r\n callHook$1(vm, 'deactivated');\r\n }\r\n}\r\nfunction callHook$1(vm, hook, args, setContext) {\r\n if (setContext === void 0) { setContext = true; }\r\n // #7573 disable dep collection when invoking lifecycle hooks\r\n pushTarget();\r\n var prev = currentInstance;\r\n setContext && setCurrentInstance(vm);\r\n var handlers = vm.$options[hook];\r\n var info = \"\".concat(hook, \" hook\");\r\n if (handlers) {\r\n for (var i = 0, j = handlers.length; i < j; i++) {\r\n invokeWithErrorHandling(handlers[i], vm, args || null, vm, info);\r\n }\r\n }\r\n if (vm._hasHookEvent) {\r\n vm.$emit('hook:' + hook);\r\n }\r\n setContext && setCurrentInstance(prev);\r\n popTarget();\r\n}\n\nvar MAX_UPDATE_COUNT = 100;\r\nvar queue = [];\r\nvar activatedChildren = [];\r\nvar has = {};\r\nvar circular = {};\r\nvar waiting = false;\r\nvar flushing = false;\r\nvar index = 0;\r\n/**\r\n * Reset the scheduler's state.\r\n */\r\nfunction resetSchedulerState() {\r\n index = queue.length = activatedChildren.length = 0;\r\n has = {};\r\n if (process.env.NODE_ENV !== 'production') {\r\n circular = {};\r\n }\r\n waiting = flushing = false;\r\n}\r\n// Async edge case #6566 requires saving the timestamp when event listeners are\r\n// attached. However, calling performance.now() has a perf overhead especially\r\n// if the page has thousands of event listeners. Instead, we take a timestamp\r\n// every time the scheduler flushes and use that for all event listeners\r\n// attached during that flush.\r\nvar currentFlushTimestamp = 0;\r\n// Async edge case fix requires storing an event listener's attach timestamp.\r\nvar getNow = Date.now;\r\n// Determine what event timestamp the browser is using. Annoyingly, the\r\n// timestamp can either be hi-res (relative to page load) or low-res\r\n// (relative to UNIX epoch), so in order to compare time we have to use the\r\n// same timestamp type when saving the flush timestamp.\r\n// All IE versions use low-res event timestamps, and have problematic clock\r\n// implementations (#9632)\r\nif (inBrowser && !isIE$1) {\r\n var performance_1 = window.performance;\r\n if (performance_1 &&\r\n typeof performance_1.now === 'function' &&\r\n getNow() > document.createEvent('Event').timeStamp) {\r\n // if the event timestamp, although evaluated AFTER the Date.now(), is\r\n // smaller than it, it means the event is using a hi-res timestamp,\r\n // and we need to use the hi-res version for event listener timestamps as\r\n // well.\r\n getNow = function () { return performance_1.now(); };\r\n }\r\n}\r\nvar sortCompareFn = function (a, b) {\r\n if (a.post) {\r\n if (!b.post)\r\n return 1;\r\n }\r\n else if (b.post) {\r\n return -1;\r\n }\r\n return a.id - b.id;\r\n};\r\n/**\r\n * Flush both queues and run the watchers.\r\n */\r\nfunction flushSchedulerQueue() {\r\n currentFlushTimestamp = getNow();\r\n flushing = true;\r\n var watcher, id;\r\n // Sort queue before flush.\r\n // This ensures that:\r\n // 1. Components are updated from parent to child. (because parent is always\r\n // created before the child)\r\n // 2. A component's user watchers are run before its render watcher (because\r\n // user watchers are created before the render watcher)\r\n // 3. If a component is destroyed during a parent component's watcher run,\r\n // its watchers can be skipped.\r\n queue.sort(sortCompareFn);\r\n // do not cache length because more watchers might be pushed\r\n // as we run existing watchers\r\n for (index = 0; index < queue.length; index++) {\r\n watcher = queue[index];\r\n if (watcher.before) {\r\n watcher.before();\r\n }\r\n id = watcher.id;\r\n has[id] = null;\r\n watcher.run();\r\n // in dev build, check and stop circular updates.\r\n if (process.env.NODE_ENV !== 'production' && has[id] != null) {\r\n circular[id] = (circular[id] || 0) + 1;\r\n if (circular[id] > MAX_UPDATE_COUNT) {\r\n warn('You may have an infinite update loop ' +\r\n (watcher.user\r\n ? \"in watcher with expression \\\"\".concat(watcher.expression, \"\\\"\")\r\n : \"in a component render function.\"), watcher.vm);\r\n break;\r\n }\r\n }\r\n }\r\n // keep copies of post queues before resetting state\r\n var activatedQueue = activatedChildren.slice();\r\n var updatedQueue = queue.slice();\r\n resetSchedulerState();\r\n // call component updated and activated hooks\r\n callActivatedHooks(activatedQueue);\r\n callUpdatedHooks(updatedQueue);\r\n // devtool hook\r\n /* istanbul ignore if */\r\n if (devtools && config$1.devtools) {\r\n devtools.emit('flush');\r\n }\r\n}\r\nfunction callUpdatedHooks(queue) {\r\n var i = queue.length;\r\n while (i--) {\r\n var watcher = queue[i];\r\n var vm = watcher.vm;\r\n if (vm && vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\r\n callHook$1(vm, 'updated');\r\n }\r\n }\r\n}\r\n/**\r\n * Queue a kept-alive component that was activated during patch.\r\n * The queue will be processed after the entire tree has been patched.\r\n */\r\nfunction queueActivatedComponent(vm) {\r\n // setting _inactive to false here so that a render function can\r\n // rely on checking whether it's in an inactive tree (e.g. router-view)\r\n vm._inactive = false;\r\n activatedChildren.push(vm);\r\n}\r\nfunction callActivatedHooks(queue) {\r\n for (var i = 0; i < queue.length; i++) {\r\n queue[i]._inactive = true;\r\n activateChildComponent(queue[i], true /* true */);\r\n }\r\n}\r\n/**\r\n * Push a watcher into the watcher queue.\r\n * Jobs with duplicate IDs will be skipped unless it's\r\n * pushed when the queue is being flushed.\r\n */\r\nfunction queueWatcher(watcher) {\r\n var id = watcher.id;\r\n if (has[id] != null) {\r\n return;\r\n }\r\n if (watcher === Dep.target && watcher.noRecurse) {\r\n return;\r\n }\r\n has[id] = true;\r\n if (!flushing) {\r\n queue.push(watcher);\r\n }\r\n else {\r\n // if already flushing, splice the watcher based on its id\r\n // if already past its id, it will be run next immediately.\r\n var i = queue.length - 1;\r\n while (i > index && queue[i].id > watcher.id) {\r\n i--;\r\n }\r\n queue.splice(i + 1, 0, watcher);\r\n }\r\n // queue the flush\r\n if (!waiting) {\r\n waiting = true;\r\n if (process.env.NODE_ENV !== 'production' && !config$1.async) {\r\n flushSchedulerQueue();\r\n return;\r\n }\r\n nextTick(flushSchedulerQueue);\r\n }\r\n}\n\nfunction initProvide(vm) {\r\n var provideOption = vm.$options.provide;\r\n if (provideOption) {\r\n var provided = isFunction(provideOption)\r\n ? provideOption.call(vm)\r\n : provideOption;\r\n if (!isObject(provided)) {\r\n return;\r\n }\r\n var source = resolveProvided(vm);\r\n // IE9 doesn't support Object.getOwnPropertyDescriptors so we have to\r\n // iterate the keys ourselves.\r\n var keys = hasSymbol ? Reflect.ownKeys(provided) : Object.keys(provided);\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n Object.defineProperty(source, key, Object.getOwnPropertyDescriptor(provided, key));\r\n }\r\n }\r\n}\r\nfunction initInjections(vm) {\r\n var result = resolveInject(vm.$options.inject, vm);\r\n if (result) {\r\n toggleObserving(false);\r\n Object.keys(result).forEach(function (key) {\r\n /* istanbul ignore else */\r\n if (process.env.NODE_ENV !== 'production') {\r\n defineReactive(vm, key, result[key], function () {\r\n warn(\"Avoid mutating an injected value directly since the changes will be \" +\r\n \"overwritten whenever the provided component re-renders. \" +\r\n \"injection being mutated: \\\"\".concat(key, \"\\\"\"), vm);\r\n });\r\n }\r\n else {\r\n defineReactive(vm, key, result[key]);\r\n }\r\n });\r\n toggleObserving(true);\r\n }\r\n}\r\nfunction resolveInject(inject, vm) {\r\n if (inject) {\r\n // inject is :any because flow is not smart enough to figure out cached\r\n var result = Object.create(null);\r\n var keys = hasSymbol ? Reflect.ownKeys(inject) : Object.keys(inject);\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n // #6574 in case the inject object is observed...\r\n if (key === '__ob__')\r\n continue;\r\n var provideKey = inject[key].from;\r\n if (provideKey in vm._provided) {\r\n result[key] = vm._provided[provideKey];\r\n }\r\n else if ('default' in inject[key]) {\r\n var provideDefault = inject[key].default;\r\n result[key] = isFunction(provideDefault)\r\n ? provideDefault.call(vm)\r\n : provideDefault;\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n warn(\"Injection \\\"\".concat(key, \"\\\" not found\"), vm);\r\n }\r\n }\r\n return result;\r\n }\r\n}\n\nfunction FunctionalRenderContext(data, props, children, parent, Ctor) {\r\n var _this = this;\r\n var options = Ctor.options;\r\n // ensure the createElement function in functional components\r\n // gets a unique context - this is necessary for correct named slot check\r\n var contextVm;\r\n if (hasOwn(parent, '_uid')) {\r\n contextVm = Object.create(parent);\r\n contextVm._original = parent;\r\n }\r\n else {\r\n // the context vm passed in is a functional context as well.\r\n // in this case we want to make sure we are able to get a hold to the\r\n // real context instance.\r\n contextVm = parent;\r\n // @ts-ignore\r\n parent = parent._original;\r\n }\r\n var isCompiled = isTrue(options._compiled);\r\n var needNormalization = !isCompiled;\r\n this.data = data;\r\n this.props = props;\r\n this.children = children;\r\n this.parent = parent;\r\n this.listeners = data.on || emptyObject;\r\n this.injections = resolveInject(options.inject, parent);\r\n this.slots = function () {\r\n if (!_this.$slots) {\r\n normalizeScopedSlots(parent, data.scopedSlots, (_this.$slots = resolveSlots(children, parent)));\r\n }\r\n return _this.$slots;\r\n };\r\n Object.defineProperty(this, 'scopedSlots', {\r\n enumerable: true,\r\n get: function () {\r\n return normalizeScopedSlots(parent, data.scopedSlots, this.slots());\r\n }\r\n });\r\n // support for compiled functional template\r\n if (isCompiled) {\r\n // exposing $options for renderStatic()\r\n this.$options = options;\r\n // pre-resolve slots for renderSlot()\r\n this.$slots = this.slots();\r\n this.$scopedSlots = normalizeScopedSlots(parent, data.scopedSlots, this.$slots);\r\n }\r\n if (options._scopeId) {\r\n this._c = function (a, b, c, d) {\r\n var vnode = createElement$1(contextVm, a, b, c, d, needNormalization);\r\n if (vnode && !isArray(vnode)) {\r\n vnode.fnScopeId = options._scopeId;\r\n vnode.fnContext = parent;\r\n }\r\n return vnode;\r\n };\r\n }\r\n else {\r\n this._c = function (a, b, c, d) {\r\n return createElement$1(contextVm, a, b, c, d, needNormalization);\r\n };\r\n }\r\n}\r\ninstallRenderHelpers(FunctionalRenderContext.prototype);\r\nfunction createFunctionalComponent(Ctor, propsData, data, contextVm, children) {\r\n var options = Ctor.options;\r\n var props = {};\r\n var propOptions = options.props;\r\n if (isDef(propOptions)) {\r\n for (var key in propOptions) {\r\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\r\n }\r\n }\r\n else {\r\n if (isDef(data.attrs))\r\n mergeProps(props, data.attrs);\r\n if (isDef(data.props))\r\n mergeProps(props, data.props);\r\n }\r\n var renderContext = new FunctionalRenderContext(data, props, children, contextVm, Ctor);\r\n var vnode = options.render.call(null, renderContext._c, renderContext);\r\n if (vnode instanceof VNode) {\r\n return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext);\r\n }\r\n else if (isArray(vnode)) {\r\n var vnodes = normalizeChildren(vnode) || [];\r\n var res = new Array(vnodes.length);\r\n for (var i = 0; i < vnodes.length; i++) {\r\n res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\r\n }\r\n return res;\r\n }\r\n}\r\nfunction cloneAndMarkFunctionalResult(vnode, data, contextVm, options, renderContext) {\r\n // #7817 clone node before setting fnContext, otherwise if the node is reused\r\n // (e.g. it was from a cached normal slot) the fnContext causes named slots\r\n // that should not be matched to match.\r\n var clone = cloneVNode(vnode);\r\n clone.fnContext = contextVm;\r\n clone.fnOptions = options;\r\n if (process.env.NODE_ENV !== 'production') {\r\n (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext =\r\n renderContext;\r\n }\r\n if (data.slot) {\r\n (clone.data || (clone.data = {})).slot = data.slot;\r\n }\r\n return clone;\r\n}\r\nfunction mergeProps(to, from) {\r\n for (var key in from) {\r\n to[camelize(key)] = from[key];\r\n }\r\n}\n\nfunction getComponentName(options) {\r\n return options.name || options.__name || options._componentTag;\r\n}\r\n// inline hooks to be invoked on component VNodes during patch\r\nvar componentVNodeHooks = {\r\n init: function (vnode, hydrating) {\r\n if (vnode.componentInstance &&\r\n !vnode.componentInstance._isDestroyed &&\r\n vnode.data.keepAlive) {\r\n // kept-alive components, treat as a patch\r\n var mountedNode = vnode; // work around flow\r\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\r\n }\r\n else {\r\n var child = (vnode.componentInstance = createComponentInstanceForVnode(vnode, activeInstance));\r\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\r\n }\r\n },\r\n prepatch: function (oldVnode, vnode) {\r\n var options = vnode.componentOptions;\r\n var child = (vnode.componentInstance = oldVnode.componentInstance);\r\n updateChildComponent(child, options.propsData, // updated props\r\n options.listeners, // updated listeners\r\n vnode, // new parent vnode\r\n options.children // new children\r\n );\r\n },\r\n insert: function (vnode) {\r\n var context = vnode.context, componentInstance = vnode.componentInstance;\r\n if (!componentInstance._isMounted) {\r\n componentInstance._isMounted = true;\r\n callHook$1(componentInstance, 'mounted');\r\n }\r\n if (vnode.data.keepAlive) {\r\n if (context._isMounted) {\r\n // vue-router#1212\r\n // During updates, a kept-alive component's child components may\r\n // change, so directly walking the tree here may call activated hooks\r\n // on incorrect children. Instead we push them into a queue which will\r\n // be processed after the whole patch process ended.\r\n queueActivatedComponent(componentInstance);\r\n }\r\n else {\r\n activateChildComponent(componentInstance, true /* direct */);\r\n }\r\n }\r\n },\r\n destroy: function (vnode) {\r\n var componentInstance = vnode.componentInstance;\r\n if (!componentInstance._isDestroyed) {\r\n if (!vnode.data.keepAlive) {\r\n componentInstance.$destroy();\r\n }\r\n else {\r\n deactivateChildComponent(componentInstance, true /* direct */);\r\n }\r\n }\r\n }\r\n};\r\nvar hooksToMerge = Object.keys(componentVNodeHooks);\r\nfunction createComponent(Ctor, data, context, children, tag) {\r\n if (isUndef(Ctor)) {\r\n return;\r\n }\r\n var baseCtor = context.$options._base;\r\n // plain options object: turn it into a constructor\r\n if (isObject(Ctor)) {\r\n Ctor = baseCtor.extend(Ctor);\r\n }\r\n // if at this stage it's not a constructor or an async component factory,\r\n // reject.\r\n if (typeof Ctor !== 'function') {\r\n if (process.env.NODE_ENV !== 'production') {\r\n warn(\"Invalid Component definition: \".concat(String(Ctor)), context);\r\n }\r\n return;\r\n }\r\n // async component\r\n var asyncFactory;\r\n // @ts-expect-error\r\n if (isUndef(Ctor.cid)) {\r\n asyncFactory = Ctor;\r\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\r\n if (Ctor === undefined) {\r\n // return a placeholder node for async component, which is rendered\r\n // as a comment node but preserves all the raw information for the node.\r\n // the information will be used for async server-rendering and hydration.\r\n return createAsyncPlaceholder(asyncFactory, data, context, children, tag);\r\n }\r\n }\r\n data = data || {};\r\n // resolve constructor options in case global mixins are applied after\r\n // component constructor creation\r\n resolveConstructorOptions(Ctor);\r\n // transform component v-model data into props & events\r\n if (isDef(data.model)) {\r\n // @ts-expect-error\r\n transformModel(Ctor.options, data);\r\n }\r\n // extract props\r\n // @ts-expect-error\r\n var propsData = extractPropsFromVNodeData(data, Ctor, tag);\r\n // functional component\r\n // @ts-expect-error\r\n if (isTrue(Ctor.options.functional)) {\r\n return createFunctionalComponent(Ctor, propsData, data, context, children);\r\n }\r\n // extract listeners, since these needs to be treated as\r\n // child component listeners instead of DOM listeners\r\n var listeners = data.on;\r\n // replace with listeners with .native modifier\r\n // so it gets processed during parent component patch.\r\n data.on = data.nativeOn;\r\n // @ts-expect-error\r\n if (isTrue(Ctor.options.abstract)) {\r\n // abstract components do not keep anything\r\n // other than props & listeners & slot\r\n // work around flow\r\n var slot = data.slot;\r\n data = {};\r\n if (slot) {\r\n data.slot = slot;\r\n }\r\n }\r\n // install component management hooks onto the placeholder node\r\n installComponentHooks(data);\r\n // return a placeholder vnode\r\n // @ts-expect-error\r\n var name = getComponentName(Ctor.options) || tag;\r\n var vnode = new VNode(\r\n // @ts-expect-error\r\n \"vue-component-\".concat(Ctor.cid).concat(name ? \"-\".concat(name) : ''), data, undefined, undefined, undefined, context, \r\n // @ts-expect-error\r\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children }, asyncFactory);\r\n return vnode;\r\n}\r\nfunction createComponentInstanceForVnode(\r\n// we know it's MountedComponentVNode but flow doesn't\r\nvnode, \r\n// activeInstance in lifecycle state\r\nparent) {\r\n var options = {\r\n _isComponent: true,\r\n _parentVnode: vnode,\r\n parent: parent\r\n };\r\n // check inline-template render functions\r\n var inlineTemplate = vnode.data.inlineTemplate;\r\n if (isDef(inlineTemplate)) {\r\n options.render = inlineTemplate.render;\r\n options.staticRenderFns = inlineTemplate.staticRenderFns;\r\n }\r\n return new vnode.componentOptions.Ctor(options);\r\n}\r\nfunction installComponentHooks(data) {\r\n var hooks = data.hook || (data.hook = {});\r\n for (var i = 0; i < hooksToMerge.length; i++) {\r\n var key = hooksToMerge[i];\r\n var existing = hooks[key];\r\n var toMerge = componentVNodeHooks[key];\r\n // @ts-expect-error\r\n if (existing !== toMerge && !(existing && existing._merged)) {\r\n hooks[key] = existing ? mergeHook(toMerge, existing) : toMerge;\r\n }\r\n }\r\n}\r\nfunction mergeHook(f1, f2) {\r\n var merged = function (a, b) {\r\n // flow complains about extra args which is why we use any\r\n f1(a, b);\r\n f2(a, b);\r\n };\r\n merged._merged = true;\r\n return merged;\r\n}\r\n// transform component v-model info (value and callback) into\r\n// prop and event handler respectively.\r\nfunction transformModel(options, data) {\r\n var prop = (options.model && options.model.prop) || 'value';\r\n var event = (options.model && options.model.event) || 'input';\r\n (data.attrs || (data.attrs = {}))[prop] = data.model.value;\r\n var on = data.on || (data.on = {});\r\n var existing = on[event];\r\n var callback = data.model.callback;\r\n if (isDef(existing)) {\r\n if (isArray(existing)\r\n ? existing.indexOf(callback) === -1\r\n : existing !== callback) {\r\n on[event] = [callback].concat(existing);\r\n }\r\n }\r\n else {\r\n on[event] = callback;\r\n }\r\n}\n\nvar warn = noop;\r\nvar tip = noop;\r\nvar generateComponentTrace; // work around flow check\r\nvar formatComponentName;\r\nif (process.env.NODE_ENV !== 'production') {\r\n var hasConsole_1 = typeof console !== 'undefined';\r\n var classifyRE_1 = /(?:^|[-_])(\\w)/g;\r\n var classify_1 = function (str) {\r\n return str.replace(classifyRE_1, function (c) { return c.toUpperCase(); }).replace(/[-_]/g, '');\r\n };\r\n warn = function (msg, vm) {\r\n if (vm === void 0) { vm = currentInstance; }\r\n var trace = vm ? generateComponentTrace(vm) : '';\r\n if (config$1.warnHandler) {\r\n config$1.warnHandler.call(null, msg, vm, trace);\r\n }\r\n else if (hasConsole_1 && !config$1.silent) {\r\n console.error(\"[Vue warn]: \".concat(msg).concat(trace));\r\n }\r\n };\r\n tip = function (msg, vm) {\r\n if (hasConsole_1 && !config$1.silent) {\r\n console.warn(\"[Vue tip]: \".concat(msg) + (vm ? generateComponentTrace(vm) : ''));\r\n }\r\n };\r\n formatComponentName = function (vm, includeFile) {\r\n if (vm.$root === vm) {\r\n return '<Root>';\r\n }\r\n var options = isFunction(vm) && vm.cid != null\r\n ? vm.options\r\n : vm._isVue\r\n ? vm.$options || vm.constructor.options\r\n : vm;\r\n var name = getComponentName(options);\r\n var file = options.__file;\r\n if (!name && file) {\r\n var match = file.match(/([^/\\\\]+)\\.vue$/);\r\n name = match && match[1];\r\n }\r\n return ((name ? \"<\".concat(classify_1(name), \">\") : \"<Anonymous>\") +\r\n (file && includeFile !== false ? \" at \".concat(file) : ''));\r\n };\r\n var repeat_1 = function (str, n) {\r\n var res = '';\r\n while (n) {\r\n if (n % 2 === 1)\r\n res += str;\r\n if (n > 1)\r\n str += str;\r\n n >>= 1;\r\n }\r\n return res;\r\n };\r\n generateComponentTrace = function (vm) {\r\n if (vm._isVue && vm.$parent) {\r\n var tree = [];\r\n var currentRecursiveSequence = 0;\r\n while (vm) {\r\n if (tree.length > 0) {\r\n var last = tree[tree.length - 1];\r\n if (last.constructor === vm.constructor) {\r\n currentRecursiveSequence++;\r\n vm = vm.$parent;\r\n continue;\r\n }\r\n else if (currentRecursiveSequence > 0) {\r\n tree[tree.length - 1] = [last, currentRecursiveSequence];\r\n currentRecursiveSequence = 0;\r\n }\r\n }\r\n tree.push(vm);\r\n vm = vm.$parent;\r\n }\r\n return ('\\n\\nfound in\\n\\n' +\r\n tree\r\n .map(function (vm, i) {\r\n return \"\".concat(i === 0 ? '---> ' : repeat_1(' ', 5 + i * 2)).concat(isArray(vm)\r\n ? \"\".concat(formatComponentName(vm[0]), \"... (\").concat(vm[1], \" recursive calls)\")\r\n : formatComponentName(vm));\r\n })\r\n .join('\\n'));\r\n }\r\n else {\r\n return \"\\n\\n(found in \".concat(formatComponentName(vm), \")\");\r\n }\r\n };\r\n}\n\n/**\r\n * Option overwriting strategies are functions that handle\r\n * how to merge a parent option value and a child option\r\n * value into the final value.\r\n */\r\nvar strats = config$1.optionMergeStrategies;\r\n/**\r\n * Options with restrictions\r\n */\r\nif (process.env.NODE_ENV !== 'production') {\r\n strats.el = strats.propsData = function (parent, child, vm, key) {\r\n if (!vm) {\r\n warn(\"option \\\"\".concat(key, \"\\\" can only be used during instance \") +\r\n 'creation with the `new` keyword.');\r\n }\r\n return defaultStrat(parent, child);\r\n };\r\n}\r\n/**\r\n * Helper that recursively merges two data objects together.\r\n */\r\nfunction mergeData(to, from) {\r\n if (!from)\r\n return to;\r\n var key, toVal, fromVal;\r\n var keys = hasSymbol\r\n ? Reflect.ownKeys(from)\r\n : Object.keys(from);\r\n for (var i = 0; i < keys.length; i++) {\r\n key = keys[i];\r\n // in case the object is already observed...\r\n if (key === '__ob__')\r\n continue;\r\n toVal = to[key];\r\n fromVal = from[key];\r\n if (!hasOwn(to, key)) {\r\n set(to, key, fromVal);\r\n }\r\n else if (toVal !== fromVal &&\r\n isPlainObject(toVal) &&\r\n isPlainObject(fromVal)) {\r\n mergeData(toVal, fromVal);\r\n }\r\n }\r\n return to;\r\n}\r\n/**\r\n * Data\r\n */\r\nfunction mergeDataOrFn(parentVal, childVal, vm) {\r\n if (!vm) {\r\n // in a Vue.extend merge, both should be functions\r\n if (!childVal) {\r\n return parentVal;\r\n }\r\n if (!parentVal) {\r\n return childVal;\r\n }\r\n // when parentVal & childVal are both present,\r\n // we need to return a function that returns the\r\n // merged result of both functions... no need to\r\n // check if parentVal is a function here because\r\n // it has to be a function to pass previous merges.\r\n return function mergedDataFn() {\r\n return mergeData(isFunction(childVal) ? childVal.call(this, this) : childVal, isFunction(parentVal) ? parentVal.call(this, this) : parentVal);\r\n };\r\n }\r\n else {\r\n return function mergedInstanceDataFn() {\r\n // instance merge\r\n var instanceData = isFunction(childVal)\r\n ? childVal.call(vm, vm)\r\n : childVal;\r\n var defaultData = isFunction(parentVal)\r\n ? parentVal.call(vm, vm)\r\n : parentVal;\r\n if (instanceData) {\r\n return mergeData(instanceData, defaultData);\r\n }\r\n else {\r\n return defaultData;\r\n }\r\n };\r\n }\r\n}\r\nstrats.data = function (parentVal, childVal, vm) {\r\n if (!vm) {\r\n if (childVal && typeof childVal !== 'function') {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn('The \"data\" option should be a function ' +\r\n 'that returns a per-instance value in component ' +\r\n 'definitions.', vm);\r\n return parentVal;\r\n }\r\n return mergeDataOrFn(parentVal, childVal);\r\n }\r\n return mergeDataOrFn(parentVal, childVal, vm);\r\n};\r\n/**\r\n * Hooks and props are merged as arrays.\r\n */\r\nfunction mergeLifecycleHook(parentVal, childVal) {\r\n var res = childVal\r\n ? parentVal\r\n ? parentVal.concat(childVal)\r\n : isArray(childVal)\r\n ? childVal\r\n : [childVal]\r\n : parentVal;\r\n return res ? dedupeHooks(res) : res;\r\n}\r\nfunction dedupeHooks(hooks) {\r\n var res = [];\r\n for (var i = 0; i < hooks.length; i++) {\r\n if (res.indexOf(hooks[i]) === -1) {\r\n res.push(hooks[i]);\r\n }\r\n }\r\n return res;\r\n}\r\nLIFECYCLE_HOOKS.forEach(function (hook) {\r\n strats[hook] = mergeLifecycleHook;\r\n});\r\n/**\r\n * Assets\r\n *\r\n * When a vm is present (instance creation), we need to do\r\n * a three-way merge between constructor options, instance\r\n * options and parent options.\r\n */\r\nfunction mergeAssets(parentVal, childVal, vm, key) {\r\n var res = Object.create(parentVal || null);\r\n if (childVal) {\r\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\r\n return extend(res, childVal);\r\n }\r\n else {\r\n return res;\r\n }\r\n}\r\nASSET_TYPES.forEach(function (type) {\r\n strats[type + 's'] = mergeAssets;\r\n});\r\n/**\r\n * Watchers.\r\n *\r\n * Watchers hashes should not overwrite one\r\n * another, so we merge them as arrays.\r\n */\r\nstrats.watch = function (parentVal, childVal, vm, key) {\r\n // work around Firefox's Object.prototype.watch...\r\n //@ts-expect-error work around\r\n if (parentVal === nativeWatch)\r\n parentVal = undefined;\r\n //@ts-expect-error work around\r\n if (childVal === nativeWatch)\r\n childVal = undefined;\r\n /* istanbul ignore if */\r\n if (!childVal)\r\n return Object.create(parentVal || null);\r\n if (process.env.NODE_ENV !== 'production') {\r\n assertObjectType(key, childVal, vm);\r\n }\r\n if (!parentVal)\r\n return childVal;\r\n var ret = {};\r\n extend(ret, parentVal);\r\n for (var key_1 in childVal) {\r\n var parent_1 = ret[key_1];\r\n var child = childVal[key_1];\r\n if (parent_1 && !isArray(parent_1)) {\r\n parent_1 = [parent_1];\r\n }\r\n ret[key_1] = parent_1 ? parent_1.concat(child) : isArray(child) ? child : [child];\r\n }\r\n return ret;\r\n};\r\n/**\r\n * Other object hashes.\r\n */\r\nstrats.props =\r\n strats.methods =\r\n strats.inject =\r\n strats.computed =\r\n function (parentVal, childVal, vm, key) {\r\n if (childVal && process.env.NODE_ENV !== 'production') {\r\n assertObjectType(key, childVal, vm);\r\n }\r\n if (!parentVal)\r\n return childVal;\r\n var ret = Object.create(null);\r\n extend(ret, parentVal);\r\n if (childVal)\r\n extend(ret, childVal);\r\n return ret;\r\n };\r\nstrats.provide = mergeDataOrFn;\r\n/**\r\n * Default strategy.\r\n */\r\nvar defaultStrat = function (parentVal, childVal) {\r\n return childVal === undefined ? parentVal : childVal;\r\n};\r\n/**\r\n * Validate component names\r\n */\r\nfunction checkComponents(options) {\r\n for (var key in options.components) {\r\n validateComponentName(key);\r\n }\r\n}\r\nfunction validateComponentName(name) {\r\n if (!new RegExp(\"^[a-zA-Z][\\\\-\\\\.0-9_\".concat(unicodeRegExp.source, \"]*$\")).test(name)) {\r\n warn('Invalid component name: \"' +\r\n name +\r\n '\". Component names ' +\r\n 'should conform to valid custom element name in html5 specification.');\r\n }\r\n if (isBuiltInTag(name) || config$1.isReservedTag(name)) {\r\n warn('Do not use built-in or reserved HTML elements as component ' +\r\n 'id: ' +\r\n name);\r\n }\r\n}\r\n/**\r\n * Ensure all props option syntax are normalized into the\r\n * Object-based format.\r\n */\r\nfunction normalizeProps(options, vm) {\r\n var props = options.props;\r\n if (!props)\r\n return;\r\n var res = {};\r\n var i, val, name;\r\n if (isArray(props)) {\r\n i = props.length;\r\n while (i--) {\r\n val = props[i];\r\n if (typeof val === 'string') {\r\n name = camelize(val);\r\n res[name] = { type: null };\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n warn('props must be strings when using array syntax.');\r\n }\r\n }\r\n }\r\n else if (isPlainObject(props)) {\r\n for (var key in props) {\r\n val = props[key];\r\n name = camelize(key);\r\n res[name] = isPlainObject(val) ? val : { type: val };\r\n }\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n warn(\"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\r\n \"but got \".concat(toRawType(props), \".\"), vm);\r\n }\r\n options.props = res;\r\n}\r\n/**\r\n * Normalize all injections into Object-based format\r\n */\r\nfunction normalizeInject(options, vm) {\r\n var inject = options.inject;\r\n if (!inject)\r\n return;\r\n var normalized = (options.inject = {});\r\n if (isArray(inject)) {\r\n for (var i = 0; i < inject.length; i++) {\r\n normalized[inject[i]] = { from: inject[i] };\r\n }\r\n }\r\n else if (isPlainObject(inject)) {\r\n for (var key in inject) {\r\n var val = inject[key];\r\n normalized[key] = isPlainObject(val)\r\n ? extend({ from: key }, val)\r\n : { from: val };\r\n }\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n warn(\"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\r\n \"but got \".concat(toRawType(inject), \".\"), vm);\r\n }\r\n}\r\n/**\r\n * Normalize raw function directives into object format.\r\n */\r\nfunction normalizeDirectives$1(options) {\r\n var dirs = options.directives;\r\n if (dirs) {\r\n for (var key in dirs) {\r\n var def = dirs[key];\r\n if (isFunction(def)) {\r\n dirs[key] = { bind: def, update: def };\r\n }\r\n }\r\n }\r\n}\r\nfunction assertObjectType(name, value, vm) {\r\n if (!isPlainObject(value)) {\r\n warn(\"Invalid value for option \\\"\".concat(name, \"\\\": expected an Object, \") +\r\n \"but got \".concat(toRawType(value), \".\"), vm);\r\n }\r\n}\r\n/**\r\n * Merge two option objects into a new one.\r\n * Core utility used in both instantiation and inheritance.\r\n */\r\nfunction mergeOptions(parent, child, vm) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n checkComponents(child);\r\n }\r\n if (isFunction(child)) {\r\n // @ts-expect-error\r\n child = child.options;\r\n }\r\n normalizeProps(child, vm);\r\n normalizeInject(child, vm);\r\n normalizeDirectives$1(child);\r\n // Apply extends and mixins on the child options,\r\n // but only if it is a raw options object that isn't\r\n // the result of another mergeOptions call.\r\n // Only merged options has the _base property.\r\n if (!child._base) {\r\n if (child.extends) {\r\n parent = mergeOptions(parent, child.extends, vm);\r\n }\r\n if (child.mixins) {\r\n for (var i = 0, l = child.mixins.length; i < l; i++) {\r\n parent = mergeOptions(parent, child.mixins[i], vm);\r\n }\r\n }\r\n }\r\n var options = {};\r\n var key;\r\n for (key in parent) {\r\n mergeField(key);\r\n }\r\n for (key in child) {\r\n if (!hasOwn(parent, key)) {\r\n mergeField(key);\r\n }\r\n }\r\n function mergeField(key) {\r\n var strat = strats[key] || defaultStrat;\r\n options[key] = strat(parent[key], child[key], vm, key);\r\n }\r\n return options;\r\n}\r\n/**\r\n * Resolve an asset.\r\n * This function is used because child instances need access\r\n * to assets defined in its ancestor chain.\r\n */\r\nfunction resolveAsset(options, type, id, warnMissing) {\r\n /* istanbul ignore if */\r\n if (typeof id !== 'string') {\r\n return;\r\n }\r\n var assets = options[type];\r\n // check local registration variations first\r\n if (hasOwn(assets, id))\r\n return assets[id];\r\n var camelizedId = camelize(id);\r\n if (hasOwn(assets, camelizedId))\r\n return assets[camelizedId];\r\n var PascalCaseId = capitalize(camelizedId);\r\n if (hasOwn(assets, PascalCaseId))\r\n return assets[PascalCaseId];\r\n // fallback to prototype chain\r\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\r\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\r\n warn('Failed to resolve ' + type.slice(0, -1) + ': ' + id);\r\n }\r\n return res;\r\n}\n\nfunction validateProp(key, propOptions, propsData, vm) {\r\n var prop = propOptions[key];\r\n var absent = !hasOwn(propsData, key);\r\n var value = propsData[key];\r\n // boolean casting\r\n var booleanIndex = getTypeIndex(Boolean, prop.type);\r\n if (booleanIndex > -1) {\r\n if (absent && !hasOwn(prop, 'default')) {\r\n value = false;\r\n }\r\n else if (value === '' || value === hyphenate(key)) {\r\n // only cast empty string / same name to boolean if\r\n // boolean has higher priority\r\n var stringIndex = getTypeIndex(String, prop.type);\r\n if (stringIndex < 0 || booleanIndex < stringIndex) {\r\n value = true;\r\n }\r\n }\r\n }\r\n // check default value\r\n if (value === undefined) {\r\n value = getPropDefaultValue(vm, prop, key);\r\n // since the default value is a fresh copy,\r\n // make sure to observe it.\r\n var prevShouldObserve = shouldObserve;\r\n toggleObserving(true);\r\n observe(value);\r\n toggleObserving(prevShouldObserve);\r\n }\r\n if (process.env.NODE_ENV !== 'production') {\r\n assertProp(prop, key, value, vm, absent);\r\n }\r\n return value;\r\n}\r\n/**\r\n * Get the default value of a prop.\r\n */\r\nfunction getPropDefaultValue(vm, prop, key) {\r\n // no default, return undefined\r\n if (!hasOwn(prop, 'default')) {\r\n return undefined;\r\n }\r\n var def = prop.default;\r\n // warn against non-factory defaults for Object & Array\r\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\r\n warn('Invalid default value for prop \"' +\r\n key +\r\n '\": ' +\r\n 'Props with type Object/Array must use a factory function ' +\r\n 'to return the default value.', vm);\r\n }\r\n // the raw prop value was also undefined from previous render,\r\n // return previous default value to avoid unnecessary watcher trigger\r\n if (vm &&\r\n vm.$options.propsData &&\r\n vm.$options.propsData[key] === undefined &&\r\n vm._props[key] !== undefined) {\r\n return vm._props[key];\r\n }\r\n // call factory function for non-Function types\r\n // a value is Function if its prototype is function even across different execution context\r\n return isFunction(def) && getType(prop.type) !== 'Function'\r\n ? def.call(vm)\r\n : def;\r\n}\r\n/**\r\n * Assert whether a prop is valid.\r\n */\r\nfunction assertProp(prop, name, value, vm, absent) {\r\n if (prop.required && absent) {\r\n warn('Missing required prop: \"' + name + '\"', vm);\r\n return;\r\n }\r\n if (value == null && !prop.required) {\r\n return;\r\n }\r\n var type = prop.type;\r\n var valid = !type || type === true;\r\n var expectedTypes = [];\r\n if (type) {\r\n if (!isArray(type)) {\r\n type = [type];\r\n }\r\n for (var i = 0; i < type.length && !valid; i++) {\r\n var assertedType = assertType(value, type[i], vm);\r\n expectedTypes.push(assertedType.expectedType || '');\r\n valid = assertedType.valid;\r\n }\r\n }\r\n var haveExpectedTypes = expectedTypes.some(function (t) { return t; });\r\n if (!valid && haveExpectedTypes) {\r\n warn(getInvalidTypeMessage(name, value, expectedTypes), vm);\r\n return;\r\n }\r\n var validator = prop.validator;\r\n if (validator) {\r\n if (!validator(value)) {\r\n warn('Invalid prop: custom validator check failed for prop \"' + name + '\".', vm);\r\n }\r\n }\r\n}\r\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol|BigInt)$/;\r\nfunction assertType(value, type, vm) {\r\n var valid;\r\n var expectedType = getType(type);\r\n if (simpleCheckRE.test(expectedType)) {\r\n var t = typeof value;\r\n valid = t === expectedType.toLowerCase();\r\n // for primitive wrapper objects\r\n if (!valid && t === 'object') {\r\n valid = value instanceof type;\r\n }\r\n }\r\n else if (expectedType === 'Object') {\r\n valid = isPlainObject(value);\r\n }\r\n else if (expectedType === 'Array') {\r\n valid = isArray(value);\r\n }\r\n else {\r\n try {\r\n valid = value instanceof type;\r\n }\r\n catch (e) {\r\n warn('Invalid prop type: \"' + String(type) + '\" is not a constructor', vm);\r\n valid = false;\r\n }\r\n }\r\n return {\r\n valid: valid,\r\n expectedType: expectedType\r\n };\r\n}\r\nvar functionTypeCheckRE = /^\\s*function (\\w+)/;\r\n/**\r\n * Use function string name to check built-in types,\r\n * because a simple equality check will fail when running\r\n * across different vms / iframes.\r\n */\r\nfunction getType(fn) {\r\n var match = fn && fn.toString().match(functionTypeCheckRE);\r\n return match ? match[1] : '';\r\n}\r\nfunction isSameType(a, b) {\r\n return getType(a) === getType(b);\r\n}\r\nfunction getTypeIndex(type, expectedTypes) {\r\n if (!isArray(expectedTypes)) {\r\n return isSameType(expectedTypes, type) ? 0 : -1;\r\n }\r\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\r\n if (isSameType(expectedTypes[i], type)) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n}\r\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\r\n var message = \"Invalid prop: type check failed for prop \\\"\".concat(name, \"\\\".\") +\r\n \" Expected \".concat(expectedTypes.map(capitalize).join(', '));\r\n var expectedType = expectedTypes[0];\r\n var receivedType = toRawType(value);\r\n // check if we need to specify expected value\r\n if (expectedTypes.length === 1 &&\r\n isExplicable(expectedType) &&\r\n isExplicable(typeof value) &&\r\n !isBoolean(expectedType, receivedType)) {\r\n message += \" with value \".concat(styleValue(value, expectedType));\r\n }\r\n message += \", got \".concat(receivedType, \" \");\r\n // check if we need to specify received value\r\n if (isExplicable(receivedType)) {\r\n message += \"with value \".concat(styleValue(value, receivedType), \".\");\r\n }\r\n return message;\r\n}\r\nfunction styleValue(value, type) {\r\n if (type === 'String') {\r\n return \"\\\"\".concat(value, \"\\\"\");\r\n }\r\n else if (type === 'Number') {\r\n return \"\".concat(Number(value));\r\n }\r\n else {\r\n return \"\".concat(value);\r\n }\r\n}\r\nvar EXPLICABLE_TYPES = ['string', 'number', 'boolean'];\r\nfunction isExplicable(value) {\r\n return EXPLICABLE_TYPES.some(function (elem) { return value.toLowerCase() === elem; });\r\n}\r\nfunction isBoolean() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; });\r\n}\n\n/* not type checking this file because flow doesn't play well with Proxy */\r\nvar initProxy;\r\nif (process.env.NODE_ENV !== 'production') {\r\n var allowedGlobals_1 = makeMap('Infinity,undefined,NaN,isFinite,isNaN,' +\r\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\r\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' +\r\n 'require' // for Webpack/Browserify\r\n );\r\n var warnNonPresent_1 = function (target, key) {\r\n warn(\"Property or method \\\"\".concat(key, \"\\\" is not defined on the instance but \") +\r\n 'referenced during render. Make sure that this property is reactive, ' +\r\n 'either in the data option, or for class-based components, by ' +\r\n 'initializing the property. ' +\r\n 'See: https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', target);\r\n };\r\n var warnReservedPrefix_1 = function (target, key) {\r\n warn(\"Property \\\"\".concat(key, \"\\\" must be accessed with \\\"$data.\").concat(key, \"\\\" because \") +\r\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\r\n 'prevent conflicts with Vue internals. ' +\r\n 'See: https://v2.vuejs.org/v2/api/#data', target);\r\n };\r\n var hasProxy_1 = typeof Proxy !== 'undefined' && isNative(Proxy);\r\n if (hasProxy_1) {\r\n var isBuiltInModifier_1 = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\r\n config$1.keyCodes = new Proxy(config$1.keyCodes, {\r\n set: function (target, key, value) {\r\n if (isBuiltInModifier_1(key)) {\r\n warn(\"Avoid overwriting built-in modifier in config.keyCodes: .\".concat(key));\r\n return false;\r\n }\r\n else {\r\n target[key] = value;\r\n return true;\r\n }\r\n }\r\n });\r\n }\r\n var hasHandler_1 = {\r\n has: function (target, key) {\r\n var has = key in target;\r\n var isAllowed = allowedGlobals_1(key) ||\r\n (typeof key === 'string' &&\r\n key.charAt(0) === '_' &&\r\n !(key in target.$data));\r\n if (!has && !isAllowed) {\r\n if (key in target.$data)\r\n warnReservedPrefix_1(target, key);\r\n else\r\n warnNonPresent_1(target, key);\r\n }\r\n return has || !isAllowed;\r\n }\r\n };\r\n var getHandler_1 = {\r\n get: function (target, key) {\r\n if (typeof key === 'string' && !(key in target)) {\r\n if (key in target.$data)\r\n warnReservedPrefix_1(target, key);\r\n else\r\n warnNonPresent_1(target, key);\r\n }\r\n return target[key];\r\n }\r\n };\r\n initProxy = function initProxy(vm) {\r\n if (hasProxy_1) {\r\n // determine which proxy handler to use\r\n var options = vm.$options;\r\n var handlers = options.render && options.render._withStripped ? getHandler_1 : hasHandler_1;\r\n vm._renderProxy = new Proxy(vm, handlers);\r\n }\r\n else {\r\n vm._renderProxy = vm;\r\n }\r\n };\r\n}\n\nvar sharedPropertyDefinition = {\r\n enumerable: true,\r\n configurable: true,\r\n get: noop,\r\n set: noop\r\n};\r\nfunction proxy(target, sourceKey, key) {\r\n sharedPropertyDefinition.get = function proxyGetter() {\r\n return this[sourceKey][key];\r\n };\r\n sharedPropertyDefinition.set = function proxySetter(val) {\r\n this[sourceKey][key] = val;\r\n };\r\n Object.defineProperty(target, key, sharedPropertyDefinition);\r\n}\r\nfunction initState(vm) {\r\n var opts = vm.$options;\r\n if (opts.props)\r\n initProps$1(vm, opts.props);\r\n // Composition API\r\n initSetup(vm);\r\n if (opts.methods)\r\n initMethods(vm, opts.methods);\r\n if (opts.data) {\r\n initData(vm);\r\n }\r\n else {\r\n var ob = observe((vm._data = {}));\r\n ob && ob.vmCount++;\r\n }\r\n if (opts.computed)\r\n initComputed$1(vm, opts.computed);\r\n if (opts.watch && opts.watch !== nativeWatch) {\r\n initWatch(vm, opts.watch);\r\n }\r\n}\r\nfunction initProps$1(vm, propsOptions) {\r\n var propsData = vm.$options.propsData || {};\r\n var props = (vm._props = shallowReactive({}));\r\n // cache prop keys so that future props updates can iterate using Array\r\n // instead of dynamic object key enumeration.\r\n var keys = (vm.$options._propKeys = []);\r\n var isRoot = !vm.$parent;\r\n // root instance props should be converted\r\n if (!isRoot) {\r\n toggleObserving(false);\r\n }\r\n var _loop_1 = function (key) {\r\n keys.push(key);\r\n var value = validateProp(key, propsOptions, propsData, vm);\r\n /* istanbul ignore else */\r\n if (process.env.NODE_ENV !== 'production') {\r\n var hyphenatedKey = hyphenate(key);\r\n if (isReservedAttribute(hyphenatedKey) ||\r\n config$1.isReservedAttr(hyphenatedKey)) {\r\n warn(\"\\\"\".concat(hyphenatedKey, \"\\\" is a reserved attribute and cannot be used as component prop.\"), vm);\r\n }\r\n defineReactive(props, key, value, function () {\r\n if (!isRoot && !isUpdatingChildComponent) {\r\n warn(\"Avoid mutating a prop directly since the value will be \" +\r\n \"overwritten whenever the parent component re-renders. \" +\r\n \"Instead, use a data or computed property based on the prop's \" +\r\n \"value. Prop being mutated: \\\"\".concat(key, \"\\\"\"), vm);\r\n }\r\n });\r\n }\r\n else {\r\n defineReactive(props, key, value);\r\n }\r\n // static props are already proxied on the component's prototype\r\n // during Vue.extend(). We only need to proxy props defined at\r\n // instantiation here.\r\n if (!(key in vm)) {\r\n proxy(vm, \"_props\", key);\r\n }\r\n };\r\n for (var key in propsOptions) {\r\n _loop_1(key);\r\n }\r\n toggleObserving(true);\r\n}\r\nfunction initData(vm) {\r\n var data = vm.$options.data;\r\n data = vm._data = isFunction(data) ? getData(data, vm) : data || {};\r\n if (!isPlainObject(data)) {\r\n data = {};\r\n process.env.NODE_ENV !== 'production' &&\r\n warn('data functions should return an object:\\n' +\r\n 'https://v2.vuejs.org/v2/guide/components.html#data-Must-Be-a-Function', vm);\r\n }\r\n // proxy data on instance\r\n var keys = Object.keys(data);\r\n var props = vm.$options.props;\r\n var methods = vm.$options.methods;\r\n var i = keys.length;\r\n while (i--) {\r\n var key = keys[i];\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (methods && hasOwn(methods, key)) {\r\n warn(\"Method \\\"\".concat(key, \"\\\" has already been defined as a data property.\"), vm);\r\n }\r\n }\r\n if (props && hasOwn(props, key)) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn(\"The data property \\\"\".concat(key, \"\\\" is already declared as a prop. \") +\r\n \"Use prop default value instead.\", vm);\r\n }\r\n else if (!isReserved(key)) {\r\n proxy(vm, \"_data\", key);\r\n }\r\n }\r\n // observe data\r\n var ob = observe(data);\r\n ob && ob.vmCount++;\r\n}\r\nfunction getData(data, vm) {\r\n // #7573 disable dep collection when invoking data getters\r\n pushTarget();\r\n try {\r\n return data.call(vm, vm);\r\n }\r\n catch (e) {\r\n handleError(e, vm, \"data()\");\r\n return {};\r\n }\r\n finally {\r\n popTarget();\r\n }\r\n}\r\nvar computedWatcherOptions = { lazy: true };\r\nfunction initComputed$1(vm, computed) {\r\n // $flow-disable-line\r\n var watchers = (vm._computedWatchers = Object.create(null));\r\n // computed properties are just getters during SSR\r\n var isSSR = isServerRendering();\r\n for (var key in computed) {\r\n var userDef = computed[key];\r\n var getter = isFunction(userDef) ? userDef : userDef.get;\r\n if (process.env.NODE_ENV !== 'production' && getter == null) {\r\n warn(\"Getter is missing for computed property \\\"\".concat(key, \"\\\".\"), vm);\r\n }\r\n if (!isSSR) {\r\n // create internal watcher for the computed property.\r\n watchers[key] = new Watcher(vm, getter || noop, noop, computedWatcherOptions);\r\n }\r\n // component-defined computed properties are already defined on the\r\n // component prototype. We only need to define computed properties defined\r\n // at instantiation here.\r\n if (!(key in vm)) {\r\n defineComputed(vm, key, userDef);\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n if (key in vm.$data) {\r\n warn(\"The computed property \\\"\".concat(key, \"\\\" is already defined in data.\"), vm);\r\n }\r\n else if (vm.$options.props && key in vm.$options.props) {\r\n warn(\"The computed property \\\"\".concat(key, \"\\\" is already defined as a prop.\"), vm);\r\n }\r\n else if (vm.$options.methods && key in vm.$options.methods) {\r\n warn(\"The computed property \\\"\".concat(key, \"\\\" is already defined as a method.\"), vm);\r\n }\r\n }\r\n }\r\n}\r\nfunction defineComputed(target, key, userDef) {\r\n var shouldCache = !isServerRendering();\r\n if (isFunction(userDef)) {\r\n sharedPropertyDefinition.get = shouldCache\r\n ? createComputedGetter(key)\r\n : createGetterInvoker(userDef);\r\n sharedPropertyDefinition.set = noop;\r\n }\r\n else {\r\n sharedPropertyDefinition.get = userDef.get\r\n ? shouldCache && userDef.cache !== false\r\n ? createComputedGetter(key)\r\n : createGetterInvoker(userDef.get)\r\n : noop;\r\n sharedPropertyDefinition.set = userDef.set || noop;\r\n }\r\n if (process.env.NODE_ENV !== 'production' && sharedPropertyDefinition.set === noop) {\r\n sharedPropertyDefinition.set = function () {\r\n warn(\"Computed property \\\"\".concat(key, \"\\\" was assigned to but it has no setter.\"), this);\r\n };\r\n }\r\n Object.defineProperty(target, key, sharedPropertyDefinition);\r\n}\r\nfunction createComputedGetter(key) {\r\n return function computedGetter() {\r\n var watcher = this._computedWatchers && this._computedWatchers[key];\r\n if (watcher) {\r\n if (watcher.dirty) {\r\n watcher.evaluate();\r\n }\r\n if (Dep.target) {\r\n if (process.env.NODE_ENV !== 'production' && Dep.target.onTrack) {\r\n Dep.target.onTrack({\r\n effect: Dep.target,\r\n target: this,\r\n type: \"get\" /* TrackOpTypes.GET */,\r\n key: key\r\n });\r\n }\r\n watcher.depend();\r\n }\r\n return watcher.value;\r\n }\r\n };\r\n}\r\nfunction createGetterInvoker(fn) {\r\n return function computedGetter() {\r\n return fn.call(this, this);\r\n };\r\n}\r\nfunction initMethods(vm, methods) {\r\n var props = vm.$options.props;\r\n for (var key in methods) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof methods[key] !== 'function') {\r\n warn(\"Method \\\"\".concat(key, \"\\\" has type \\\"\").concat(typeof methods[key], \"\\\" in the component definition. \") +\r\n \"Did you reference the function correctly?\", vm);\r\n }\r\n if (props && hasOwn(props, key)) {\r\n warn(\"Method \\\"\".concat(key, \"\\\" has already been defined as a prop.\"), vm);\r\n }\r\n if (key in vm && isReserved(key)) {\r\n warn(\"Method \\\"\".concat(key, \"\\\" conflicts with an existing Vue instance method. \") +\r\n \"Avoid defining component methods that start with _ or $.\");\r\n }\r\n }\r\n vm[key] = typeof methods[key] !== 'function' ? noop : bind$1(methods[key], vm);\r\n }\r\n}\r\nfunction initWatch(vm, watch) {\r\n for (var key in watch) {\r\n var handler = watch[key];\r\n if (isArray(handler)) {\r\n for (var i = 0; i < handler.length; i++) {\r\n createWatcher(vm, key, handler[i]);\r\n }\r\n }\r\n else {\r\n createWatcher(vm, key, handler);\r\n }\r\n }\r\n}\r\nfunction createWatcher(vm, expOrFn, handler, options) {\r\n if (isPlainObject(handler)) {\r\n options = handler;\r\n handler = handler.handler;\r\n }\r\n if (typeof handler === 'string') {\r\n handler = vm[handler];\r\n }\r\n return vm.$watch(expOrFn, handler, options);\r\n}\r\nfunction stateMixin(Vue) {\r\n // flow somehow has problems with directly declared definition object\r\n // when using Object.defineProperty, so we have to procedurally build up\r\n // the object here.\r\n var dataDef = {};\r\n dataDef.get = function () {\r\n return this._data;\r\n };\r\n var propsDef = {};\r\n propsDef.get = function () {\r\n return this._props;\r\n };\r\n if (process.env.NODE_ENV !== 'production') {\r\n dataDef.set = function () {\r\n warn('Avoid replacing instance root $data. ' +\r\n 'Use nested data properties instead.', this);\r\n };\r\n propsDef.set = function () {\r\n warn(\"$props is readonly.\", this);\r\n };\r\n }\r\n Object.defineProperty(Vue.prototype, '$data', dataDef);\r\n Object.defineProperty(Vue.prototype, '$props', propsDef);\r\n Vue.prototype.$set = set;\r\n Vue.prototype.$delete = del;\r\n Vue.prototype.$watch = function (expOrFn, cb, options) {\r\n var vm = this;\r\n if (isPlainObject(cb)) {\r\n return createWatcher(vm, expOrFn, cb, options);\r\n }\r\n options = options || {};\r\n options.user = true;\r\n var watcher = new Watcher(vm, expOrFn, cb, options);\r\n if (options.immediate) {\r\n var info = \"callback for immediate watcher \\\"\".concat(watcher.expression, \"\\\"\");\r\n pushTarget();\r\n invokeWithErrorHandling(cb, vm, [watcher.value], vm, info);\r\n popTarget();\r\n }\r\n return function unwatchFn() {\r\n watcher.teardown();\r\n };\r\n };\r\n}\n\nvar uid = 0;\r\nfunction initMixin$1(Vue) {\r\n Vue.prototype._init = function (options) {\r\n var vm = this;\r\n // a uid\r\n vm._uid = uid++;\r\n var startTag, endTag;\r\n /* istanbul ignore if */\r\n if (process.env.NODE_ENV !== 'production' && config$1.performance && mark) {\r\n startTag = \"vue-perf-start:\".concat(vm._uid);\r\n endTag = \"vue-perf-end:\".concat(vm._uid);\r\n mark(startTag);\r\n }\r\n // a flag to mark this as a Vue instance without having to do instanceof\r\n // check\r\n vm._isVue = true;\r\n // avoid instances from being observed\r\n vm.__v_skip = true;\r\n // effect scope\r\n vm._scope = new EffectScope(true /* detached */);\r\n vm._scope._vm = true;\r\n // merge options\r\n if (options && options._isComponent) {\r\n // optimize internal component instantiation\r\n // since dynamic options merging is pretty slow, and none of the\r\n // internal component options needs special treatment.\r\n initInternalComponent(vm, options);\r\n }\r\n else {\r\n vm.$options = mergeOptions(resolveConstructorOptions(vm.constructor), options || {}, vm);\r\n }\r\n /* istanbul ignore else */\r\n if (process.env.NODE_ENV !== 'production') {\r\n initProxy(vm);\r\n }\r\n else {\r\n vm._renderProxy = vm;\r\n }\r\n // expose real self\r\n vm._self = vm;\r\n initLifecycle(vm);\r\n initEvents(vm);\r\n initRender(vm);\r\n callHook$1(vm, 'beforeCreate', undefined, false /* setContext */);\r\n initInjections(vm); // resolve injections before data/props\r\n initState(vm);\r\n initProvide(vm); // resolve provide after data/props\r\n callHook$1(vm, 'created');\r\n /* istanbul ignore if */\r\n if (process.env.NODE_ENV !== 'production' && config$1.performance && mark) {\r\n vm._name = formatComponentName(vm, false);\r\n mark(endTag);\r\n measure(\"vue \".concat(vm._name, \" init\"), startTag, endTag);\r\n }\r\n if (vm.$options.el) {\r\n vm.$mount(vm.$options.el);\r\n }\r\n };\r\n}\r\nfunction initInternalComponent(vm, options) {\r\n var opts = (vm.$options = Object.create(vm.constructor.options));\r\n // doing this because it's faster than dynamic enumeration.\r\n var parentVnode = options._parentVnode;\r\n opts.parent = options.parent;\r\n opts._parentVnode = parentVnode;\r\n var vnodeComponentOptions = parentVnode.componentOptions;\r\n opts.propsData = vnodeComponentOptions.propsData;\r\n opts._parentListeners = vnodeComponentOptions.listeners;\r\n opts._renderChildren = vnodeComponentOptions.children;\r\n opts._componentTag = vnodeComponentOptions.tag;\r\n if (options.render) {\r\n opts.render = options.render;\r\n opts.staticRenderFns = options.staticRenderFns;\r\n }\r\n}\r\nfunction resolveConstructorOptions(Ctor) {\r\n var options = Ctor.options;\r\n if (Ctor.super) {\r\n var superOptions = resolveConstructorOptions(Ctor.super);\r\n var cachedSuperOptions = Ctor.superOptions;\r\n if (superOptions !== cachedSuperOptions) {\r\n // super option changed,\r\n // need to resolve new options.\r\n Ctor.superOptions = superOptions;\r\n // check if there are any late-modified/attached options (#4976)\r\n var modifiedOptions = resolveModifiedOptions(Ctor);\r\n // update base extend options\r\n if (modifiedOptions) {\r\n extend(Ctor.extendOptions, modifiedOptions);\r\n }\r\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\r\n if (options.name) {\r\n options.components[options.name] = Ctor;\r\n }\r\n }\r\n }\r\n return options;\r\n}\r\nfunction resolveModifiedOptions(Ctor) {\r\n var modified;\r\n var latest = Ctor.options;\r\n var sealed = Ctor.sealedOptions;\r\n for (var key in latest) {\r\n if (latest[key] !== sealed[key]) {\r\n if (!modified)\r\n modified = {};\r\n modified[key] = latest[key];\r\n }\r\n }\r\n return modified;\r\n}\n\nfunction Vue(options) {\r\n if (process.env.NODE_ENV !== 'production' && !(this instanceof Vue)) {\r\n warn('Vue is a constructor and should be called with the `new` keyword');\r\n }\r\n this._init(options);\r\n}\r\n//@ts-expect-error Vue has function type\r\ninitMixin$1(Vue);\r\n//@ts-expect-error Vue has function type\r\nstateMixin(Vue);\r\n//@ts-expect-error Vue has function type\r\neventsMixin(Vue);\r\n//@ts-expect-error Vue has function type\r\nlifecycleMixin(Vue);\r\n//@ts-expect-error Vue has function type\r\nrenderMixin(Vue);\n\nfunction initUse(Vue) {\r\n Vue.use = function (plugin) {\r\n var installedPlugins = this._installedPlugins || (this._installedPlugins = []);\r\n if (installedPlugins.indexOf(plugin) > -1) {\r\n return this;\r\n }\r\n // additional parameters\r\n var args = toArray(arguments, 1);\r\n args.unshift(this);\r\n if (isFunction(plugin.install)) {\r\n plugin.install.apply(plugin, args);\r\n }\r\n else if (isFunction(plugin)) {\r\n plugin.apply(null, args);\r\n }\r\n installedPlugins.push(plugin);\r\n return this;\r\n };\r\n}\n\nfunction initMixin(Vue) {\r\n Vue.mixin = function (mixin) {\r\n this.options = mergeOptions(this.options, mixin);\r\n return this;\r\n };\r\n}\n\nfunction initExtend(Vue) {\r\n /**\r\n * Each instance constructor, including Vue, has a unique\r\n * cid. This enables us to create wrapped \"child\r\n * constructors\" for prototypal inheritance and cache them.\r\n */\r\n Vue.cid = 0;\r\n var cid = 1;\r\n /**\r\n * Class inheritance\r\n */\r\n Vue.extend = function (extendOptions) {\r\n extendOptions = extendOptions || {};\r\n var Super = this;\r\n var SuperId = Super.cid;\r\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\r\n if (cachedCtors[SuperId]) {\r\n return cachedCtors[SuperId];\r\n }\r\n var name = getComponentName(extendOptions) || getComponentName(Super.options);\r\n if (process.env.NODE_ENV !== 'production' && name) {\r\n validateComponentName(name);\r\n }\r\n var Sub = function VueComponent(options) {\r\n this._init(options);\r\n };\r\n Sub.prototype = Object.create(Super.prototype);\r\n Sub.prototype.constructor = Sub;\r\n Sub.cid = cid++;\r\n Sub.options = mergeOptions(Super.options, extendOptions);\r\n Sub['super'] = Super;\r\n // For props and computed properties, we define the proxy getters on\r\n // the Vue instances at extension time, on the extended prototype. This\r\n // avoids Object.defineProperty calls for each instance created.\r\n if (Sub.options.props) {\r\n initProps(Sub);\r\n }\r\n if (Sub.options.computed) {\r\n initComputed(Sub);\r\n }\r\n // allow further extension/mixin/plugin usage\r\n Sub.extend = Super.extend;\r\n Sub.mixin = Super.mixin;\r\n Sub.use = Super.use;\r\n // create asset registers, so extended classes\r\n // can have their private assets too.\r\n ASSET_TYPES.forEach(function (type) {\r\n Sub[type] = Super[type];\r\n });\r\n // enable recursive self-lookup\r\n if (name) {\r\n Sub.options.components[name] = Sub;\r\n }\r\n // keep a reference to the super options at extension time.\r\n // later at instantiation we can check if Super's options have\r\n // been updated.\r\n Sub.superOptions = Super.options;\r\n Sub.extendOptions = extendOptions;\r\n Sub.sealedOptions = extend({}, Sub.options);\r\n // cache constructor\r\n cachedCtors[SuperId] = Sub;\r\n return Sub;\r\n };\r\n}\r\nfunction initProps(Comp) {\r\n var props = Comp.options.props;\r\n for (var key in props) {\r\n proxy(Comp.prototype, \"_props\", key);\r\n }\r\n}\r\nfunction initComputed(Comp) {\r\n var computed = Comp.options.computed;\r\n for (var key in computed) {\r\n defineComputed(Comp.prototype, key, computed[key]);\r\n }\r\n}\n\nfunction initAssetRegisters(Vue) {\r\n /**\r\n * Create asset registration methods.\r\n */\r\n ASSET_TYPES.forEach(function (type) {\r\n // @ts-expect-error function is not exact same type\r\n Vue[type] = function (id, definition) {\r\n if (!definition) {\r\n return this.options[type + 's'][id];\r\n }\r\n else {\r\n /* istanbul ignore if */\r\n if (process.env.NODE_ENV !== 'production' && type === 'component') {\r\n validateComponentName(id);\r\n }\r\n if (type === 'component' && isPlainObject(definition)) {\r\n // @ts-expect-error\r\n definition.name = definition.name || id;\r\n definition = this.options._base.extend(definition);\r\n }\r\n if (type === 'directive' && isFunction(definition)) {\r\n definition = { bind: definition, update: definition };\r\n }\r\n this.options[type + 's'][id] = definition;\r\n return definition;\r\n }\r\n };\r\n });\r\n}\n\nfunction _getComponentName(opts) {\r\n return opts && (getComponentName(opts.Ctor.options) || opts.tag);\r\n}\r\nfunction matches$1(pattern, name) {\r\n if (isArray(pattern)) {\r\n return pattern.indexOf(name) > -1;\r\n }\r\n else if (typeof pattern === 'string') {\r\n return pattern.split(',').indexOf(name) > -1;\r\n }\r\n else if (isRegExp(pattern)) {\r\n return pattern.test(name);\r\n }\r\n /* istanbul ignore next */\r\n return false;\r\n}\r\nfunction pruneCache(keepAliveInstance, filter) {\r\n var cache = keepAliveInstance.cache, keys = keepAliveInstance.keys, _vnode = keepAliveInstance._vnode;\r\n for (var key in cache) {\r\n var entry = cache[key];\r\n if (entry) {\r\n var name_1 = entry.name;\r\n if (name_1 && !filter(name_1)) {\r\n pruneCacheEntry(cache, key, keys, _vnode);\r\n }\r\n }\r\n }\r\n}\r\nfunction pruneCacheEntry(cache, key, keys, current) {\r\n var entry = cache[key];\r\n if (entry && (!current || entry.tag !== current.tag)) {\r\n // @ts-expect-error can be undefined\r\n entry.componentInstance.$destroy();\r\n }\r\n cache[key] = null;\r\n remove$2(keys, key);\r\n}\r\nvar patternTypes = [String, RegExp, Array];\r\n// TODO defineComponent\r\nvar KeepAlive = {\r\n name: 'keep-alive',\r\n abstract: true,\r\n props: {\r\n include: patternTypes,\r\n exclude: patternTypes,\r\n max: [String, Number]\r\n },\r\n methods: {\r\n cacheVNode: function () {\r\n var _a = this, cache = _a.cache, keys = _a.keys, vnodeToCache = _a.vnodeToCache, keyToCache = _a.keyToCache;\r\n if (vnodeToCache) {\r\n var tag = vnodeToCache.tag, componentInstance = vnodeToCache.componentInstance, componentOptions = vnodeToCache.componentOptions;\r\n cache[keyToCache] = {\r\n name: _getComponentName(componentOptions),\r\n tag: tag,\r\n componentInstance: componentInstance\r\n };\r\n keys.push(keyToCache);\r\n // prune oldest entry\r\n if (this.max && keys.length > parseInt(this.max)) {\r\n pruneCacheEntry(cache, keys[0], keys, this._vnode);\r\n }\r\n this.vnodeToCache = null;\r\n }\r\n }\r\n },\r\n created: function () {\r\n this.cache = Object.create(null);\r\n this.keys = [];\r\n },\r\n destroyed: function () {\r\n for (var key in this.cache) {\r\n pruneCacheEntry(this.cache, key, this.keys);\r\n }\r\n },\r\n mounted: function () {\r\n var _this = this;\r\n this.cacheVNode();\r\n this.$watch('include', function (val) {\r\n pruneCache(_this, function (name) { return matches$1(val, name); });\r\n });\r\n this.$watch('exclude', function (val) {\r\n pruneCache(_this, function (name) { return !matches$1(val, name); });\r\n });\r\n },\r\n updated: function () {\r\n this.cacheVNode();\r\n },\r\n render: function () {\r\n var slot = this.$slots.default;\r\n var vnode = getFirstComponentChild(slot);\r\n var componentOptions = vnode && vnode.componentOptions;\r\n if (componentOptions) {\r\n // check pattern\r\n var name_2 = _getComponentName(componentOptions);\r\n var _a = this, include = _a.include, exclude = _a.exclude;\r\n if (\r\n // not included\r\n (include && (!name_2 || !matches$1(include, name_2))) ||\r\n // excluded\r\n (exclude && name_2 && matches$1(exclude, name_2))) {\r\n return vnode;\r\n }\r\n var _b = this, cache = _b.cache, keys = _b.keys;\r\n var key = vnode.key == null\r\n ? // same constructor may get registered as different local components\r\n // so cid alone is not enough (#3269)\r\n componentOptions.Ctor.cid +\r\n (componentOptions.tag ? \"::\".concat(componentOptions.tag) : '')\r\n : vnode.key;\r\n if (cache[key]) {\r\n vnode.componentInstance = cache[key].componentInstance;\r\n // make current key freshest\r\n remove$2(keys, key);\r\n keys.push(key);\r\n }\r\n else {\r\n // delay setting the cache until update\r\n this.vnodeToCache = vnode;\r\n this.keyToCache = key;\r\n }\r\n // @ts-expect-error can vnode.data can be undefined\r\n vnode.data.keepAlive = true;\r\n }\r\n return vnode || (slot && slot[0]);\r\n }\r\n};\n\nvar builtInComponents = {\r\n KeepAlive: KeepAlive\r\n};\n\nfunction initGlobalAPI(Vue) {\r\n // config\r\n var configDef = {};\r\n configDef.get = function () { return config$1; };\r\n if (process.env.NODE_ENV !== 'production') {\r\n configDef.set = function () {\r\n warn('Do not replace the Vue.config object, set individual fields instead.');\r\n };\r\n }\r\n Object.defineProperty(Vue, 'config', configDef);\r\n // exposed util methods.\r\n // NOTE: these are not considered part of the public API - avoid relying on\r\n // them unless you are aware of the risk.\r\n Vue.util = {\r\n warn: warn,\r\n extend: extend,\r\n mergeOptions: mergeOptions,\r\n defineReactive: defineReactive\r\n };\r\n Vue.set = set;\r\n Vue.delete = del;\r\n Vue.nextTick = nextTick;\r\n // 2.6 explicit observable API\r\n Vue.observable = function (obj) {\r\n observe(obj);\r\n return obj;\r\n };\r\n Vue.options = Object.create(null);\r\n ASSET_TYPES.forEach(function (type) {\r\n Vue.options[type + 's'] = Object.create(null);\r\n });\r\n // this is used to identify the \"base\" constructor to extend all plain-object\r\n // components with in Weex's multi-instance scenarios.\r\n Vue.options._base = Vue;\r\n extend(Vue.options.components, builtInComponents);\r\n initUse(Vue);\r\n initMixin(Vue);\r\n initExtend(Vue);\r\n initAssetRegisters(Vue);\r\n}\n\ninitGlobalAPI(Vue);\r\nObject.defineProperty(Vue.prototype, '$isServer', {\r\n get: isServerRendering\r\n});\r\nObject.defineProperty(Vue.prototype, '$ssrContext', {\r\n get: function () {\r\n /* istanbul ignore next */\r\n return this.$vnode && this.$vnode.ssrContext;\r\n }\r\n});\r\n// expose FunctionalRenderContext for ssr runtime helper installation\r\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\r\n value: FunctionalRenderContext\r\n});\r\nVue.version = version;\n\n// these are reserved for web because they are directly compiled away\r\n// during template compilation\r\nvar isReservedAttr = makeMap('style,class');\r\n// attributes that should be using props for binding\r\nvar acceptValue = makeMap('input,textarea,option,select,progress');\r\nvar mustUseProp = function (tag, type, attr) {\r\n return ((attr === 'value' && acceptValue(tag) && type !== 'button') ||\r\n (attr === 'selected' && tag === 'option') ||\r\n (attr === 'checked' && tag === 'input') ||\r\n (attr === 'muted' && tag === 'video'));\r\n};\r\nvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\r\nvar isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');\r\nvar convertEnumeratedValue = function (key, value) {\r\n return isFalsyAttrValue(value) || value === 'false'\r\n ? 'false'\r\n : // allow arbitrary string value for contenteditable\r\n key === 'contenteditable' && isValidContentEditableValue(value)\r\n ? value\r\n : 'true';\r\n};\r\nvar isBooleanAttr = makeMap('allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\r\n 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\r\n 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\r\n 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\r\n 'required,reversed,scoped,seamless,selected,sortable,' +\r\n 'truespeed,typemustmatch,visible');\r\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\r\nvar isXlink = function (name) {\r\n return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink';\r\n};\r\nvar getXlinkProp = function (name) {\r\n return isXlink(name) ? name.slice(6, name.length) : '';\r\n};\r\nvar isFalsyAttrValue = function (val) {\r\n return val == null || val === false;\r\n};\n\nfunction genClassForVnode(vnode) {\r\n var data = vnode.data;\r\n var parentNode = vnode;\r\n var childNode = vnode;\r\n while (isDef(childNode.componentInstance)) {\r\n childNode = childNode.componentInstance._vnode;\r\n if (childNode && childNode.data) {\r\n data = mergeClassData(childNode.data, data);\r\n }\r\n }\r\n // @ts-expect-error parentNode.parent not VNodeWithData\r\n while (isDef((parentNode = parentNode.parent))) {\r\n if (parentNode && parentNode.data) {\r\n data = mergeClassData(data, parentNode.data);\r\n }\r\n }\r\n return renderClass(data.staticClass, data.class);\r\n}\r\nfunction mergeClassData(child, parent) {\r\n return {\r\n staticClass: concat(child.staticClass, parent.staticClass),\r\n class: isDef(child.class) ? [child.class, parent.class] : parent.class\r\n };\r\n}\r\nfunction renderClass(staticClass, dynamicClass) {\r\n if (isDef(staticClass) || isDef(dynamicClass)) {\r\n return concat(staticClass, stringifyClass(dynamicClass));\r\n }\r\n /* istanbul ignore next */\r\n return '';\r\n}\r\nfunction concat(a, b) {\r\n return a ? (b ? a + ' ' + b : a) : b || '';\r\n}\r\nfunction stringifyClass(value) {\r\n if (Array.isArray(value)) {\r\n return stringifyArray(value);\r\n }\r\n if (isObject(value)) {\r\n return stringifyObject(value);\r\n }\r\n if (typeof value === 'string') {\r\n return value;\r\n }\r\n /* istanbul ignore next */\r\n return '';\r\n}\r\nfunction stringifyArray(value) {\r\n var res = '';\r\n var stringified;\r\n for (var i = 0, l = value.length; i < l; i++) {\r\n if (isDef((stringified = stringifyClass(value[i]))) && stringified !== '') {\r\n if (res)\r\n res += ' ';\r\n res += stringified;\r\n }\r\n }\r\n return res;\r\n}\r\nfunction stringifyObject(value) {\r\n var res = '';\r\n for (var key in value) {\r\n if (value[key]) {\r\n if (res)\r\n res += ' ';\r\n res += key;\r\n }\r\n }\r\n return res;\r\n}\n\nvar namespaceMap = {\r\n svg: 'http://www.w3.org/2000/svg',\r\n math: 'http://www.w3.org/1998/Math/MathML'\r\n};\r\nvar isHTMLTag = makeMap('html,body,base,head,link,meta,style,title,' +\r\n 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\r\n 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\r\n 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\r\n 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\r\n 'embed,object,param,source,canvas,script,noscript,del,ins,' +\r\n 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\r\n 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\r\n 'output,progress,select,textarea,' +\r\n 'details,dialog,menu,menuitem,summary,' +\r\n 'content,element,shadow,template,blockquote,iframe,tfoot');\r\n// this map is intentionally selective, only covering SVG elements that may\r\n// contain child elements.\r\nvar isSVG = makeMap('svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\r\n 'foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\r\n 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view', true);\r\nvar isReservedTag = function (tag) {\r\n return isHTMLTag(tag) || isSVG(tag);\r\n};\r\nfunction getTagNamespace(tag) {\r\n if (isSVG(tag)) {\r\n return 'svg';\r\n }\r\n // basic support for MathML\r\n // note it doesn't support other MathML elements being component roots\r\n if (tag === 'math') {\r\n return 'math';\r\n }\r\n}\r\nvar unknownElementCache = Object.create(null);\r\nfunction isUnknownElement(tag) {\r\n /* istanbul ignore if */\r\n if (!inBrowser) {\r\n return true;\r\n }\r\n if (isReservedTag(tag)) {\r\n return false;\r\n }\r\n tag = tag.toLowerCase();\r\n /* istanbul ignore if */\r\n if (unknownElementCache[tag] != null) {\r\n return unknownElementCache[tag];\r\n }\r\n var el = document.createElement(tag);\r\n if (tag.indexOf('-') > -1) {\r\n // http://stackoverflow.com/a/28210364/1070244\r\n return (unknownElementCache[tag] =\r\n el.constructor === window.HTMLUnknownElement ||\r\n el.constructor === window.HTMLElement);\r\n }\r\n else {\r\n return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()));\r\n }\r\n}\r\nvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n/**\r\n * Query an element selector if it's not an element already.\r\n */\r\nfunction query(el) {\r\n if (typeof el === 'string') {\r\n var selected = document.querySelector(el);\r\n if (!selected) {\r\n process.env.NODE_ENV !== 'production' && warn('Cannot find element: ' + el);\r\n return document.createElement('div');\r\n }\r\n return selected;\r\n }\r\n else {\r\n return el;\r\n }\r\n}\n\nfunction createElement(tagName, vnode) {\r\n var elm = document.createElement(tagName);\r\n if (tagName !== 'select') {\r\n return elm;\r\n }\r\n // false or null will remove the attribute but undefined will not\r\n if (vnode.data &&\r\n vnode.data.attrs &&\r\n vnode.data.attrs.multiple !== undefined) {\r\n elm.setAttribute('multiple', 'multiple');\r\n }\r\n return elm;\r\n}\r\nfunction createElementNS(namespace, tagName) {\r\n return document.createElementNS(namespaceMap[namespace], tagName);\r\n}\r\nfunction createTextNode(text) {\r\n return document.createTextNode(text);\r\n}\r\nfunction createComment(text) {\r\n return document.createComment(text);\r\n}\r\nfunction insertBefore(parentNode, newNode, referenceNode) {\r\n parentNode.insertBefore(newNode, referenceNode);\r\n}\r\nfunction removeChild(node, child) {\r\n node.removeChild(child);\r\n}\r\nfunction appendChild(node, child) {\r\n node.appendChild(child);\r\n}\r\nfunction parentNode(node) {\r\n return node.parentNode;\r\n}\r\nfunction nextSibling(node) {\r\n return node.nextSibling;\r\n}\r\nfunction tagName(node) {\r\n return node.tagName;\r\n}\r\nfunction setTextContent(node, text) {\r\n node.textContent = text;\r\n}\r\nfunction setStyleScope(node, scopeId) {\r\n node.setAttribute(scopeId, '');\r\n}\n\nvar nodeOps = /*#__PURE__*/Object.freeze({\n __proto__: null,\n createElement: createElement,\n createElementNS: createElementNS,\n createTextNode: createTextNode,\n createComment: createComment,\n insertBefore: insertBefore,\n removeChild: removeChild,\n appendChild: appendChild,\n parentNode: parentNode,\n nextSibling: nextSibling,\n tagName: tagName,\n setTextContent: setTextContent,\n setStyleScope: setStyleScope\n});\n\nvar ref = {\r\n create: function (_, vnode) {\r\n registerRef(vnode);\r\n },\r\n update: function (oldVnode, vnode) {\r\n if (oldVnode.data.ref !== vnode.data.ref) {\r\n registerRef(oldVnode, true);\r\n registerRef(vnode);\r\n }\r\n },\r\n destroy: function (vnode) {\r\n registerRef(vnode, true);\r\n }\r\n};\r\nfunction registerRef(vnode, isRemoval) {\r\n var ref = vnode.data.ref;\r\n if (!isDef(ref))\r\n return;\r\n var vm = vnode.context;\r\n var refValue = vnode.componentInstance || vnode.elm;\r\n var value = isRemoval ? null : refValue;\r\n var $refsValue = isRemoval ? undefined : refValue;\r\n if (isFunction(ref)) {\r\n invokeWithErrorHandling(ref, vm, [value], vm, \"template ref function\");\r\n return;\r\n }\r\n var isFor = vnode.data.refInFor;\r\n var _isString = typeof ref === 'string' || typeof ref === 'number';\r\n var _isRef = isRef(ref);\r\n var refs = vm.$refs;\r\n if (_isString || _isRef) {\r\n if (isFor) {\r\n var existing = _isString ? refs[ref] : ref.value;\r\n if (isRemoval) {\r\n isArray(existing) && remove$2(existing, refValue);\r\n }\r\n else {\r\n if (!isArray(existing)) {\r\n if (_isString) {\r\n refs[ref] = [refValue];\r\n setSetupRef(vm, ref, refs[ref]);\r\n }\r\n else {\r\n ref.value = [refValue];\r\n }\r\n }\r\n else if (!existing.includes(refValue)) {\r\n existing.push(refValue);\r\n }\r\n }\r\n }\r\n else if (_isString) {\r\n if (isRemoval && refs[ref] !== refValue) {\r\n return;\r\n }\r\n refs[ref] = $refsValue;\r\n setSetupRef(vm, ref, value);\r\n }\r\n else if (_isRef) {\r\n if (isRemoval && ref.value !== refValue) {\r\n return;\r\n }\r\n ref.value = value;\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n warn(\"Invalid template ref type: \".concat(typeof ref));\r\n }\r\n }\r\n}\r\nfunction setSetupRef(_a, key, val) {\r\n var _setupState = _a._setupState;\r\n if (_setupState && hasOwn(_setupState, key)) {\r\n if (isRef(_setupState[key])) {\r\n _setupState[key].value = val;\r\n }\r\n else {\r\n _setupState[key] = val;\r\n }\r\n }\r\n}\n\n/**\r\n * Virtual DOM patching algorithm based on Snabbdom by\r\n * Simon Friis Vindum (@paldepind)\r\n * Licensed under the MIT License\r\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\r\n *\r\n * modified by Evan You (@yyx990803)\r\n *\r\n * Not type-checking this because this file is perf-critical and the cost\r\n * of making flow understand it is not worth it.\r\n */\r\nvar emptyNode = new VNode('', {}, []);\r\nvar hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\r\nfunction sameVnode(a, b) {\r\n return (a.key === b.key &&\r\n a.asyncFactory === b.asyncFactory &&\r\n ((a.tag === b.tag &&\r\n a.isComment === b.isComment &&\r\n isDef(a.data) === isDef(b.data) &&\r\n sameInputType(a, b)) ||\r\n (isTrue(a.isAsyncPlaceholder) && isUndef(b.asyncFactory.error))));\r\n}\r\nfunction sameInputType(a, b) {\r\n if (a.tag !== 'input')\r\n return true;\r\n var i;\r\n var typeA = isDef((i = a.data)) && isDef((i = i.attrs)) && i.type;\r\n var typeB = isDef((i = b.data)) && isDef((i = i.attrs)) && i.type;\r\n return typeA === typeB || (isTextInputType(typeA) && isTextInputType(typeB));\r\n}\r\nfunction createKeyToOldIdx(children, beginIdx, endIdx) {\r\n var i, key;\r\n var map = {};\r\n for (i = beginIdx; i <= endIdx; ++i) {\r\n key = children[i].key;\r\n if (isDef(key))\r\n map[key] = i;\r\n }\r\n return map;\r\n}\r\nfunction createPatchFunction(backend) {\r\n var i, j;\r\n var cbs = {};\r\n var modules = backend.modules, nodeOps = backend.nodeOps;\r\n for (i = 0; i < hooks.length; ++i) {\r\n cbs[hooks[i]] = [];\r\n for (j = 0; j < modules.length; ++j) {\r\n if (isDef(modules[j][hooks[i]])) {\r\n cbs[hooks[i]].push(modules[j][hooks[i]]);\r\n }\r\n }\r\n }\r\n function emptyNodeAt(elm) {\r\n return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm);\r\n }\r\n function createRmCb(childElm, listeners) {\r\n function remove() {\r\n if (--remove.listeners === 0) {\r\n removeNode(childElm);\r\n }\r\n }\r\n remove.listeners = listeners;\r\n return remove;\r\n }\r\n function removeNode(el) {\r\n var parent = nodeOps.parentNode(el);\r\n // element may have already been removed due to v-html / v-text\r\n if (isDef(parent)) {\r\n nodeOps.removeChild(parent, el);\r\n }\r\n }\r\n function isUnknownElement(vnode, inVPre) {\r\n return (!inVPre &&\r\n !vnode.ns &&\r\n !(config$1.ignoredElements.length &&\r\n config$1.ignoredElements.some(function (ignore) {\r\n return isRegExp(ignore)\r\n ? ignore.test(vnode.tag)\r\n : ignore === vnode.tag;\r\n })) &&\r\n config$1.isUnknownElement(vnode.tag));\r\n }\r\n var creatingElmInVPre = 0;\r\n function createElm(vnode, insertedVnodeQueue, parentElm, refElm, nested, ownerArray, index) {\r\n if (isDef(vnode.elm) && isDef(ownerArray)) {\r\n // This vnode was used in a previous render!\r\n // now it's used as a new node, overwriting its elm would cause\r\n // potential patch errors down the road when it's used as an insertion\r\n // reference node. Instead, we clone the node on-demand before creating\r\n // associated DOM element for it.\r\n vnode = ownerArray[index] = cloneVNode(vnode);\r\n }\r\n vnode.isRootInsert = !nested; // for transition enter check\r\n if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\r\n return;\r\n }\r\n var data = vnode.data;\r\n var children = vnode.children;\r\n var tag = vnode.tag;\r\n if (isDef(tag)) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (data && data.pre) {\r\n creatingElmInVPre++;\r\n }\r\n if (isUnknownElement(vnode, creatingElmInVPre)) {\r\n warn('Unknown custom element: <' +\r\n tag +\r\n '> - did you ' +\r\n 'register the component correctly? For recursive components, ' +\r\n 'make sure to provide the \"name\" option.', vnode.context);\r\n }\r\n }\r\n vnode.elm = vnode.ns\r\n ? nodeOps.createElementNS(vnode.ns, tag)\r\n : nodeOps.createElement(tag, vnode);\r\n setScope(vnode);\r\n createChildren(vnode, children, insertedVnodeQueue);\r\n if (isDef(data)) {\r\n invokeCreateHooks(vnode, insertedVnodeQueue);\r\n }\r\n insert(parentElm, vnode.elm, refElm);\r\n if (process.env.NODE_ENV !== 'production' && data && data.pre) {\r\n creatingElmInVPre--;\r\n }\r\n }\r\n else if (isTrue(vnode.isComment)) {\r\n vnode.elm = nodeOps.createComment(vnode.text);\r\n insert(parentElm, vnode.elm, refElm);\r\n }\r\n else {\r\n vnode.elm = nodeOps.createTextNode(vnode.text);\r\n insert(parentElm, vnode.elm, refElm);\r\n }\r\n }\r\n function createComponent(vnode, insertedVnodeQueue, parentElm, refElm) {\r\n var i = vnode.data;\r\n if (isDef(i)) {\r\n var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\r\n if (isDef((i = i.hook)) && isDef((i = i.init))) {\r\n i(vnode, false /* hydrating */);\r\n }\r\n // after calling the init hook, if the vnode is a child component\r\n // it should've created a child instance and mounted it. the child\r\n // component also has set the placeholder vnode's elm.\r\n // in that case we can just return the element and be done.\r\n if (isDef(vnode.componentInstance)) {\r\n initComponent(vnode, insertedVnodeQueue);\r\n insert(parentElm, vnode.elm, refElm);\r\n if (isTrue(isReactivated)) {\r\n reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\r\n }\r\n return true;\r\n }\r\n }\r\n }\r\n function initComponent(vnode, insertedVnodeQueue) {\r\n if (isDef(vnode.data.pendingInsert)) {\r\n insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\r\n vnode.data.pendingInsert = null;\r\n }\r\n vnode.elm = vnode.componentInstance.$el;\r\n if (isPatchable(vnode)) {\r\n invokeCreateHooks(vnode, insertedVnodeQueue);\r\n setScope(vnode);\r\n }\r\n else {\r\n // empty component root.\r\n // skip all element-related modules except for ref (#3455)\r\n registerRef(vnode);\r\n // make sure to invoke the insert hook\r\n insertedVnodeQueue.push(vnode);\r\n }\r\n }\r\n function reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm) {\r\n var i;\r\n // hack for #4339: a reactivated component with inner transition\r\n // does not trigger because the inner node's created hooks are not called\r\n // again. It's not ideal to involve module-specific logic in here but\r\n // there doesn't seem to be a better way to do it.\r\n var innerNode = vnode;\r\n while (innerNode.componentInstance) {\r\n innerNode = innerNode.componentInstance._vnode;\r\n if (isDef((i = innerNode.data)) && isDef((i = i.transition))) {\r\n for (i = 0; i < cbs.activate.length; ++i) {\r\n cbs.activate[i](emptyNode, innerNode);\r\n }\r\n insertedVnodeQueue.push(innerNode);\r\n break;\r\n }\r\n }\r\n // unlike a newly created component,\r\n // a reactivated keep-alive component doesn't insert itself\r\n insert(parentElm, vnode.elm, refElm);\r\n }\r\n function insert(parent, elm, ref) {\r\n if (isDef(parent)) {\r\n if (isDef(ref)) {\r\n if (nodeOps.parentNode(ref) === parent) {\r\n nodeOps.insertBefore(parent, elm, ref);\r\n }\r\n }\r\n else {\r\n nodeOps.appendChild(parent, elm);\r\n }\r\n }\r\n }\r\n function createChildren(vnode, children, insertedVnodeQueue) {\r\n if (isArray(children)) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n checkDuplicateKeys(children);\r\n }\r\n for (var i_1 = 0; i_1 < children.length; ++i_1) {\r\n createElm(children[i_1], insertedVnodeQueue, vnode.elm, null, true, children, i_1);\r\n }\r\n }\r\n else if (isPrimitive(vnode.text)) {\r\n nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\r\n }\r\n }\r\n function isPatchable(vnode) {\r\n while (vnode.componentInstance) {\r\n vnode = vnode.componentInstance._vnode;\r\n }\r\n return isDef(vnode.tag);\r\n }\r\n function invokeCreateHooks(vnode, insertedVnodeQueue) {\r\n for (var i_2 = 0; i_2 < cbs.create.length; ++i_2) {\r\n cbs.create[i_2](emptyNode, vnode);\r\n }\r\n i = vnode.data.hook; // Reuse variable\r\n if (isDef(i)) {\r\n if (isDef(i.create))\r\n i.create(emptyNode, vnode);\r\n if (isDef(i.insert))\r\n insertedVnodeQueue.push(vnode);\r\n }\r\n }\r\n // set scope id attribute for scoped CSS.\r\n // this is implemented as a special case to avoid the overhead\r\n // of going through the normal attribute patching process.\r\n function setScope(vnode) {\r\n var i;\r\n if (isDef((i = vnode.fnScopeId))) {\r\n nodeOps.setStyleScope(vnode.elm, i);\r\n }\r\n else {\r\n var ancestor = vnode;\r\n while (ancestor) {\r\n if (isDef((i = ancestor.context)) && isDef((i = i.$options._scopeId))) {\r\n nodeOps.setStyleScope(vnode.elm, i);\r\n }\r\n ancestor = ancestor.parent;\r\n }\r\n }\r\n // for slot content they should also get the scopeId from the host instance.\r\n if (isDef((i = activeInstance)) &&\r\n i !== vnode.context &&\r\n i !== vnode.fnContext &&\r\n isDef((i = i.$options._scopeId))) {\r\n nodeOps.setStyleScope(vnode.elm, i);\r\n }\r\n }\r\n function addVnodes(parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\r\n for (; startIdx <= endIdx; ++startIdx) {\r\n createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\r\n }\r\n }\r\n function invokeDestroyHook(vnode) {\r\n var i, j;\r\n var data = vnode.data;\r\n if (isDef(data)) {\r\n if (isDef((i = data.hook)) && isDef((i = i.destroy)))\r\n i(vnode);\r\n for (i = 0; i < cbs.destroy.length; ++i)\r\n cbs.destroy[i](vnode);\r\n }\r\n if (isDef((i = vnode.children))) {\r\n for (j = 0; j < vnode.children.length; ++j) {\r\n invokeDestroyHook(vnode.children[j]);\r\n }\r\n }\r\n }\r\n function removeVnodes(vnodes, startIdx, endIdx) {\r\n for (; startIdx <= endIdx; ++startIdx) {\r\n var ch = vnodes[startIdx];\r\n if (isDef(ch)) {\r\n if (isDef(ch.tag)) {\r\n removeAndInvokeRemoveHook(ch);\r\n invokeDestroyHook(ch);\r\n }\r\n else {\r\n // Text node\r\n removeNode(ch.elm);\r\n }\r\n }\r\n }\r\n }\r\n function removeAndInvokeRemoveHook(vnode, rm) {\r\n if (isDef(rm) || isDef(vnode.data)) {\r\n var i_3;\r\n var listeners = cbs.remove.length + 1;\r\n if (isDef(rm)) {\r\n // we have a recursively passed down rm callback\r\n // increase the listeners count\r\n rm.listeners += listeners;\r\n }\r\n else {\r\n // directly removing\r\n rm = createRmCb(vnode.elm, listeners);\r\n }\r\n // recursively invoke hooks on child component root node\r\n if (isDef((i_3 = vnode.componentInstance)) &&\r\n isDef((i_3 = i_3._vnode)) &&\r\n isDef(i_3.data)) {\r\n removeAndInvokeRemoveHook(i_3, rm);\r\n }\r\n for (i_3 = 0; i_3 < cbs.remove.length; ++i_3) {\r\n cbs.remove[i_3](vnode, rm);\r\n }\r\n if (isDef((i_3 = vnode.data.hook)) && isDef((i_3 = i_3.remove))) {\r\n i_3(vnode, rm);\r\n }\r\n else {\r\n rm();\r\n }\r\n }\r\n else {\r\n removeNode(vnode.elm);\r\n }\r\n }\r\n function updateChildren(parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\r\n var oldStartIdx = 0;\r\n var newStartIdx = 0;\r\n var oldEndIdx = oldCh.length - 1;\r\n var oldStartVnode = oldCh[0];\r\n var oldEndVnode = oldCh[oldEndIdx];\r\n var newEndIdx = newCh.length - 1;\r\n var newStartVnode = newCh[0];\r\n var newEndVnode = newCh[newEndIdx];\r\n var oldKeyToIdx, idxInOld, vnodeToMove, refElm;\r\n // removeOnly is a special flag used only by <transition-group>\r\n // to ensure removed elements stay in correct relative positions\r\n // during leaving transitions\r\n var canMove = !removeOnly;\r\n if (process.env.NODE_ENV !== 'production') {\r\n checkDuplicateKeys(newCh);\r\n }\r\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\r\n if (isUndef(oldStartVnode)) {\r\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\r\n }\r\n else if (isUndef(oldEndVnode)) {\r\n oldEndVnode = oldCh[--oldEndIdx];\r\n }\r\n else if (sameVnode(oldStartVnode, newStartVnode)) {\r\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\r\n oldStartVnode = oldCh[++oldStartIdx];\r\n newStartVnode = newCh[++newStartIdx];\r\n }\r\n else if (sameVnode(oldEndVnode, newEndVnode)) {\r\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\r\n oldEndVnode = oldCh[--oldEndIdx];\r\n newEndVnode = newCh[--newEndIdx];\r\n }\r\n else if (sameVnode(oldStartVnode, newEndVnode)) {\r\n // Vnode moved right\r\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\r\n canMove &&\r\n nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\r\n oldStartVnode = oldCh[++oldStartIdx];\r\n newEndVnode = newCh[--newEndIdx];\r\n }\r\n else if (sameVnode(oldEndVnode, newStartVnode)) {\r\n // Vnode moved left\r\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\r\n canMove &&\r\n nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\r\n oldEndVnode = oldCh[--oldEndIdx];\r\n newStartVnode = newCh[++newStartIdx];\r\n }\r\n else {\r\n if (isUndef(oldKeyToIdx))\r\n oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);\r\n idxInOld = isDef(newStartVnode.key)\r\n ? oldKeyToIdx[newStartVnode.key]\r\n : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\r\n if (isUndef(idxInOld)) {\r\n // New element\r\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\r\n }\r\n else {\r\n vnodeToMove = oldCh[idxInOld];\r\n if (sameVnode(vnodeToMove, newStartVnode)) {\r\n patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\r\n oldCh[idxInOld] = undefined;\r\n canMove &&\r\n nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\r\n }\r\n else {\r\n // same key but different element. treat as new element\r\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\r\n }\r\n }\r\n newStartVnode = newCh[++newStartIdx];\r\n }\r\n }\r\n if (oldStartIdx > oldEndIdx) {\r\n refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\r\n addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\r\n }\r\n else if (newStartIdx > newEndIdx) {\r\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\r\n }\r\n }\r\n function checkDuplicateKeys(children) {\r\n var seenKeys = {};\r\n for (var i_4 = 0; i_4 < children.length; i_4++) {\r\n var vnode = children[i_4];\r\n var key = vnode.key;\r\n if (isDef(key)) {\r\n if (seenKeys[key]) {\r\n warn(\"Duplicate keys detected: '\".concat(key, \"'. This may cause an update error.\"), vnode.context);\r\n }\r\n else {\r\n seenKeys[key] = true;\r\n }\r\n }\r\n }\r\n }\r\n function findIdxInOld(node, oldCh, start, end) {\r\n for (var i_5 = start; i_5 < end; i_5++) {\r\n var c = oldCh[i_5];\r\n if (isDef(c) && sameVnode(node, c))\r\n return i_5;\r\n }\r\n }\r\n function patchVnode(oldVnode, vnode, insertedVnodeQueue, ownerArray, index, removeOnly) {\r\n if (oldVnode === vnode) {\r\n return;\r\n }\r\n if (isDef(vnode.elm) && isDef(ownerArray)) {\r\n // clone reused vnode\r\n vnode = ownerArray[index] = cloneVNode(vnode);\r\n }\r\n var elm = (vnode.elm = oldVnode.elm);\r\n if (isTrue(oldVnode.isAsyncPlaceholder)) {\r\n if (isDef(vnode.asyncFactory.resolved)) {\r\n hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\r\n }\r\n else {\r\n vnode.isAsyncPlaceholder = true;\r\n }\r\n return;\r\n }\r\n // reuse element for static trees.\r\n // note we only do this if the vnode is cloned -\r\n // if the new node is not cloned it means the render functions have been\r\n // reset by the hot-reload-api and we need to do a proper re-render.\r\n if (isTrue(vnode.isStatic) &&\r\n isTrue(oldVnode.isStatic) &&\r\n vnode.key === oldVnode.key &&\r\n (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))) {\r\n vnode.componentInstance = oldVnode.componentInstance;\r\n return;\r\n }\r\n var i;\r\n var data = vnode.data;\r\n if (isDef(data) && isDef((i = data.hook)) && isDef((i = i.prepatch))) {\r\n i(oldVnode, vnode);\r\n }\r\n var oldCh = oldVnode.children;\r\n var ch = vnode.children;\r\n if (isDef(data) && isPatchable(vnode)) {\r\n for (i = 0; i < cbs.update.length; ++i)\r\n cbs.update[i](oldVnode, vnode);\r\n if (isDef((i = data.hook)) && isDef((i = i.update)))\r\n i(oldVnode, vnode);\r\n }\r\n if (isUndef(vnode.text)) {\r\n if (isDef(oldCh) && isDef(ch)) {\r\n if (oldCh !== ch)\r\n updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly);\r\n }\r\n else if (isDef(ch)) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n checkDuplicateKeys(ch);\r\n }\r\n if (isDef(oldVnode.text))\r\n nodeOps.setTextContent(elm, '');\r\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\r\n }\r\n else if (isDef(oldCh)) {\r\n removeVnodes(oldCh, 0, oldCh.length - 1);\r\n }\r\n else if (isDef(oldVnode.text)) {\r\n nodeOps.setTextContent(elm, '');\r\n }\r\n }\r\n else if (oldVnode.text !== vnode.text) {\r\n nodeOps.setTextContent(elm, vnode.text);\r\n }\r\n if (isDef(data)) {\r\n if (isDef((i = data.hook)) && isDef((i = i.postpatch)))\r\n i(oldVnode, vnode);\r\n }\r\n }\r\n function invokeInsertHook(vnode, queue, initial) {\r\n // delay insert hooks for component root nodes, invoke them after the\r\n // element is really inserted\r\n if (isTrue(initial) && isDef(vnode.parent)) {\r\n vnode.parent.data.pendingInsert = queue;\r\n }\r\n else {\r\n for (var i_6 = 0; i_6 < queue.length; ++i_6) {\r\n queue[i_6].data.hook.insert(queue[i_6]);\r\n }\r\n }\r\n }\r\n var hydrationBailed = false;\r\n // list of modules that can skip create hook during hydration because they\r\n // are already rendered on the client or has no need for initialization\r\n // Note: style is excluded because it relies on initial clone for future\r\n // deep updates (#7063).\r\n var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\r\n // Note: this is a browser-only function so we can assume elms are DOM nodes.\r\n function hydrate(elm, vnode, insertedVnodeQueue, inVPre) {\r\n var i;\r\n var tag = vnode.tag, data = vnode.data, children = vnode.children;\r\n inVPre = inVPre || (data && data.pre);\r\n vnode.elm = elm;\r\n if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\r\n vnode.isAsyncPlaceholder = true;\r\n return true;\r\n }\r\n // assert node match\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!assertNodeMatch(elm, vnode, inVPre)) {\r\n return false;\r\n }\r\n }\r\n if (isDef(data)) {\r\n if (isDef((i = data.hook)) && isDef((i = i.init)))\r\n i(vnode, true /* hydrating */);\r\n if (isDef((i = vnode.componentInstance))) {\r\n // child component. it should have hydrated its own tree.\r\n initComponent(vnode, insertedVnodeQueue);\r\n return true;\r\n }\r\n }\r\n if (isDef(tag)) {\r\n if (isDef(children)) {\r\n // empty element, allow client to pick up and populate children\r\n if (!elm.hasChildNodes()) {\r\n createChildren(vnode, children, insertedVnodeQueue);\r\n }\r\n else {\r\n // v-html and domProps: innerHTML\r\n if (isDef((i = data)) &&\r\n isDef((i = i.domProps)) &&\r\n isDef((i = i.innerHTML))) {\r\n if (i !== elm.innerHTML) {\r\n /* istanbul ignore if */\r\n if (process.env.NODE_ENV !== 'production' &&\r\n typeof console !== 'undefined' &&\r\n !hydrationBailed) {\r\n hydrationBailed = true;\r\n console.warn('Parent: ', elm);\r\n console.warn('server innerHTML: ', i);\r\n console.warn('client innerHTML: ', elm.innerHTML);\r\n }\r\n return false;\r\n }\r\n }\r\n else {\r\n // iterate and compare children lists\r\n var childrenMatch = true;\r\n var childNode = elm.firstChild;\r\n for (var i_7 = 0; i_7 < children.length; i_7++) {\r\n if (!childNode ||\r\n !hydrate(childNode, children[i_7], insertedVnodeQueue, inVPre)) {\r\n childrenMatch = false;\r\n break;\r\n }\r\n childNode = childNode.nextSibling;\r\n }\r\n // if childNode is not null, it means the actual childNodes list is\r\n // longer than the virtual children list.\r\n if (!childrenMatch || childNode) {\r\n /* istanbul ignore if */\r\n if (process.env.NODE_ENV !== 'production' &&\r\n typeof console !== 'undefined' &&\r\n !hydrationBailed) {\r\n hydrationBailed = true;\r\n console.warn('Parent: ', elm);\r\n console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\r\n }\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n if (isDef(data)) {\r\n var fullInvoke = false;\r\n for (var key in data) {\r\n if (!isRenderedModule(key)) {\r\n fullInvoke = true;\r\n invokeCreateHooks(vnode, insertedVnodeQueue);\r\n break;\r\n }\r\n }\r\n if (!fullInvoke && data['class']) {\r\n // ensure collecting deps for deep class bindings for future updates\r\n traverse(data['class']);\r\n }\r\n }\r\n }\r\n else if (elm.data !== vnode.text) {\r\n elm.data = vnode.text;\r\n }\r\n return true;\r\n }\r\n function assertNodeMatch(node, vnode, inVPre) {\r\n if (isDef(vnode.tag)) {\r\n return (vnode.tag.indexOf('vue-component') === 0 ||\r\n (!isUnknownElement(vnode, inVPre) &&\r\n vnode.tag.toLowerCase() ===\r\n (node.tagName && node.tagName.toLowerCase())));\r\n }\r\n else {\r\n return node.nodeType === (vnode.isComment ? 8 : 3);\r\n }\r\n }\r\n return function patch(oldVnode, vnode, hydrating, removeOnly) {\r\n if (isUndef(vnode)) {\r\n if (isDef(oldVnode))\r\n invokeDestroyHook(oldVnode);\r\n return;\r\n }\r\n var isInitialPatch = false;\r\n var insertedVnodeQueue = [];\r\n if (isUndef(oldVnode)) {\r\n // empty mount (likely as component), create new root element\r\n isInitialPatch = true;\r\n createElm(vnode, insertedVnodeQueue);\r\n }\r\n else {\r\n var isRealElement = isDef(oldVnode.nodeType);\r\n if (!isRealElement && sameVnode(oldVnode, vnode)) {\r\n // patch existing root node\r\n patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);\r\n }\r\n else {\r\n if (isRealElement) {\r\n // mounting to a real element\r\n // check if this is server-rendered content and if we can perform\r\n // a successful hydration.\r\n if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\r\n oldVnode.removeAttribute(SSR_ATTR);\r\n hydrating = true;\r\n }\r\n if (isTrue(hydrating)) {\r\n if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\r\n invokeInsertHook(vnode, insertedVnodeQueue, true);\r\n return oldVnode;\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n warn('The client-side rendered virtual DOM tree is not matching ' +\r\n 'server-rendered content. This is likely caused by incorrect ' +\r\n 'HTML markup, for example nesting block-level elements inside ' +\r\n '<p>, or missing <tbody>. Bailing hydration and performing ' +\r\n 'full client-side render.');\r\n }\r\n }\r\n // either not server-rendered, or hydration failed.\r\n // create an empty node and replace it\r\n oldVnode = emptyNodeAt(oldVnode);\r\n }\r\n // replacing existing element\r\n var oldElm = oldVnode.elm;\r\n var parentElm = nodeOps.parentNode(oldElm);\r\n // create new node\r\n createElm(vnode, insertedVnodeQueue, \r\n // extremely rare edge case: do not insert if old element is in a\r\n // leaving transition. Only happens when combining transition +\r\n // keep-alive + HOCs. (#4590)\r\n oldElm._leaveCb ? null : parentElm, nodeOps.nextSibling(oldElm));\r\n // update parent placeholder node element, recursively\r\n if (isDef(vnode.parent)) {\r\n var ancestor = vnode.parent;\r\n var patchable = isPatchable(vnode);\r\n while (ancestor) {\r\n for (var i_8 = 0; i_8 < cbs.destroy.length; ++i_8) {\r\n cbs.destroy[i_8](ancestor);\r\n }\r\n ancestor.elm = vnode.elm;\r\n if (patchable) {\r\n for (var i_9 = 0; i_9 < cbs.create.length; ++i_9) {\r\n cbs.create[i_9](emptyNode, ancestor);\r\n }\r\n // #6513\r\n // invoke insert hooks that may have been merged by create hooks.\r\n // e.g. for directives that uses the \"inserted\" hook.\r\n var insert_1 = ancestor.data.hook.insert;\r\n if (insert_1.merged) {\r\n // start at index 1 to avoid re-invoking component mounted hook\r\n for (var i_10 = 1; i_10 < insert_1.fns.length; i_10++) {\r\n insert_1.fns[i_10]();\r\n }\r\n }\r\n }\r\n else {\r\n registerRef(ancestor);\r\n }\r\n ancestor = ancestor.parent;\r\n }\r\n }\r\n // destroy old node\r\n if (isDef(parentElm)) {\r\n removeVnodes([oldVnode], 0, 0);\r\n }\r\n else if (isDef(oldVnode.tag)) {\r\n invokeDestroyHook(oldVnode);\r\n }\r\n }\r\n }\r\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\r\n return vnode.elm;\r\n };\r\n}\n\nvar directives = {\r\n create: updateDirectives,\r\n update: updateDirectives,\r\n destroy: function unbindDirectives(vnode) {\r\n // @ts-expect-error emptyNode is not VNodeWithData\r\n updateDirectives(vnode, emptyNode);\r\n }\r\n};\r\nfunction updateDirectives(oldVnode, vnode) {\r\n if (oldVnode.data.directives || vnode.data.directives) {\r\n _update(oldVnode, vnode);\r\n }\r\n}\r\nfunction _update(oldVnode, vnode) {\r\n var isCreate = oldVnode === emptyNode;\r\n var isDestroy = vnode === emptyNode;\r\n var oldDirs = normalizeDirectives(oldVnode.data.directives, oldVnode.context);\r\n var newDirs = normalizeDirectives(vnode.data.directives, vnode.context);\r\n var dirsWithInsert = [];\r\n var dirsWithPostpatch = [];\r\n var key, oldDir, dir;\r\n for (key in newDirs) {\r\n oldDir = oldDirs[key];\r\n dir = newDirs[key];\r\n if (!oldDir) {\r\n // new directive, bind\r\n callHook(dir, 'bind', vnode, oldVnode);\r\n if (dir.def && dir.def.inserted) {\r\n dirsWithInsert.push(dir);\r\n }\r\n }\r\n else {\r\n // existing directive, update\r\n dir.oldValue = oldDir.value;\r\n dir.oldArg = oldDir.arg;\r\n callHook(dir, 'update', vnode, oldVnode);\r\n if (dir.def && dir.def.componentUpdated) {\r\n dirsWithPostpatch.push(dir);\r\n }\r\n }\r\n }\r\n if (dirsWithInsert.length) {\r\n var callInsert = function () {\r\n for (var i = 0; i < dirsWithInsert.length; i++) {\r\n callHook(dirsWithInsert[i], 'inserted', vnode, oldVnode);\r\n }\r\n };\r\n if (isCreate) {\r\n mergeVNodeHook(vnode, 'insert', callInsert);\r\n }\r\n else {\r\n callInsert();\r\n }\r\n }\r\n if (dirsWithPostpatch.length) {\r\n mergeVNodeHook(vnode, 'postpatch', function () {\r\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\r\n callHook(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\r\n }\r\n });\r\n }\r\n if (!isCreate) {\r\n for (key in oldDirs) {\r\n if (!newDirs[key]) {\r\n // no longer present, unbind\r\n callHook(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\r\n }\r\n }\r\n }\r\n}\r\nvar emptyModifiers = Object.create(null);\r\nfunction normalizeDirectives(dirs, vm) {\r\n var res = Object.create(null);\r\n if (!dirs) {\r\n // $flow-disable-line\r\n return res;\r\n }\r\n var i, dir;\r\n for (i = 0; i < dirs.length; i++) {\r\n dir = dirs[i];\r\n if (!dir.modifiers) {\r\n // $flow-disable-line\r\n dir.modifiers = emptyModifiers;\r\n }\r\n res[getRawDirName(dir)] = dir;\r\n if (vm._setupState && vm._setupState.__sfc) {\r\n var setupDef = dir.def || resolveAsset(vm, '_setupState', 'v-' + dir.name);\r\n if (typeof setupDef === 'function') {\r\n dir.def = {\r\n bind: setupDef,\r\n update: setupDef,\r\n };\r\n }\r\n else {\r\n dir.def = setupDef;\r\n }\r\n }\r\n dir.def = dir.def || resolveAsset(vm.$options, 'directives', dir.name, true);\r\n }\r\n // $flow-disable-line\r\n return res;\r\n}\r\nfunction getRawDirName(dir) {\r\n return (dir.rawName || \"\".concat(dir.name, \".\").concat(Object.keys(dir.modifiers || {}).join('.')));\r\n}\r\nfunction callHook(dir, hook, vnode, oldVnode, isDestroy) {\r\n var fn = dir.def && dir.def[hook];\r\n if (fn) {\r\n try {\r\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\r\n }\r\n catch (e) {\r\n handleError(e, vnode.context, \"directive \".concat(dir.name, \" \").concat(hook, \" hook\"));\r\n }\r\n }\r\n}\n\nvar baseModules = [ref, directives];\n\nfunction updateAttrs(oldVnode, vnode) {\r\n var opts = vnode.componentOptions;\r\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\r\n return;\r\n }\r\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\r\n return;\r\n }\r\n var key, cur, old;\r\n var elm = vnode.elm;\r\n var oldAttrs = oldVnode.data.attrs || {};\r\n var attrs = vnode.data.attrs || {};\r\n // clone observed objects, as the user probably wants to mutate it\r\n if (isDef(attrs.__ob__) || isTrue(attrs._v_attr_proxy)) {\r\n attrs = vnode.data.attrs = extend({}, attrs);\r\n }\r\n for (key in attrs) {\r\n cur = attrs[key];\r\n old = oldAttrs[key];\r\n if (old !== cur) {\r\n setAttr(elm, key, cur, vnode.data.pre);\r\n }\r\n }\r\n // #4391: in IE9, setting type can reset value for input[type=radio]\r\n // #6666: IE/Edge forces progress value down to 1 before setting a max\r\n /* istanbul ignore if */\r\n if ((isIE$1 || isEdge) && attrs.value !== oldAttrs.value) {\r\n setAttr(elm, 'value', attrs.value);\r\n }\r\n for (key in oldAttrs) {\r\n if (isUndef(attrs[key])) {\r\n if (isXlink(key)) {\r\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\r\n }\r\n else if (!isEnumeratedAttr(key)) {\r\n elm.removeAttribute(key);\r\n }\r\n }\r\n }\r\n}\r\nfunction setAttr(el, key, value, isInPre) {\r\n if (isInPre || el.tagName.indexOf('-') > -1) {\r\n baseSetAttr(el, key, value);\r\n }\r\n else if (isBooleanAttr(key)) {\r\n // set attribute for blank value\r\n // e.g. <option disabled>Select one</option>\r\n if (isFalsyAttrValue(value)) {\r\n el.removeAttribute(key);\r\n }\r\n else {\r\n // technically allowfullscreen is a boolean attribute for <iframe>,\r\n // but Flash expects a value of \"true\" when used on <embed> tag\r\n value = key === 'allowfullscreen' && el.tagName === 'EMBED' ? 'true' : key;\r\n el.setAttribute(key, value);\r\n }\r\n }\r\n else if (isEnumeratedAttr(key)) {\r\n el.setAttribute(key, convertEnumeratedValue(key, value));\r\n }\r\n else if (isXlink(key)) {\r\n if (isFalsyAttrValue(value)) {\r\n el.removeAttributeNS(xlinkNS, getXlinkProp(key));\r\n }\r\n else {\r\n el.setAttributeNS(xlinkNS, key, value);\r\n }\r\n }\r\n else {\r\n baseSetAttr(el, key, value);\r\n }\r\n}\r\nfunction baseSetAttr(el, key, value) {\r\n if (isFalsyAttrValue(value)) {\r\n el.removeAttribute(key);\r\n }\r\n else {\r\n // #7138: IE10 & 11 fires input event when setting placeholder on\r\n // <textarea>... block the first input event and remove the blocker\r\n // immediately.\r\n /* istanbul ignore if */\r\n if (isIE$1 &&\r\n !isIE9 &&\r\n el.tagName === 'TEXTAREA' &&\r\n key === 'placeholder' &&\r\n value !== '' &&\r\n !el.__ieph) {\r\n var blocker_1 = function (e) {\r\n e.stopImmediatePropagation();\r\n el.removeEventListener('input', blocker_1);\r\n };\r\n el.addEventListener('input', blocker_1);\r\n // $flow-disable-line\r\n el.__ieph = true; /* IE placeholder patched */\r\n }\r\n el.setAttribute(key, value);\r\n }\r\n}\r\nvar attrs = {\r\n create: updateAttrs,\r\n update: updateAttrs\r\n};\n\nfunction updateClass(oldVnode, vnode) {\r\n var el = vnode.elm;\r\n var data = vnode.data;\r\n var oldData = oldVnode.data;\r\n if (isUndef(data.staticClass) &&\r\n isUndef(data.class) &&\r\n (isUndef(oldData) ||\r\n (isUndef(oldData.staticClass) && isUndef(oldData.class)))) {\r\n return;\r\n }\r\n var cls = genClassForVnode(vnode);\r\n // handle transition classes\r\n var transitionClass = el._transitionClasses;\r\n if (isDef(transitionClass)) {\r\n cls = concat(cls, stringifyClass(transitionClass));\r\n }\r\n // set the class\r\n if (cls !== el._prevClass) {\r\n el.setAttribute('class', cls);\r\n el._prevClass = cls;\r\n }\r\n}\r\nvar klass = {\r\n create: updateClass,\r\n update: updateClass\r\n};\n\n// in some cases, the event used has to be determined at runtime\r\n// so we used some reserved tokens during compile.\r\nvar RANGE_TOKEN = '__r';\r\nvar CHECKBOX_RADIO_TOKEN = '__c';\n\n// normalize v-model event tokens that can only be determined at runtime.\r\n// it's important to place the event as the first in the array because\r\n// the whole point is ensuring the v-model callback gets called before\r\n// user-attached handlers.\r\nfunction normalizeEvents(on) {\r\n /* istanbul ignore if */\r\n if (isDef(on[RANGE_TOKEN])) {\r\n // IE input[type=range] only supports `change` event\r\n var event_1 = isIE$1 ? 'change' : 'input';\r\n on[event_1] = [].concat(on[RANGE_TOKEN], on[event_1] || []);\r\n delete on[RANGE_TOKEN];\r\n }\r\n // This was originally intended to fix #4521 but no longer necessary\r\n // after 2.5. Keeping it for backwards compat with generated code from < 2.4\r\n /* istanbul ignore if */\r\n if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\r\n on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\r\n delete on[CHECKBOX_RADIO_TOKEN];\r\n }\r\n}\r\nvar target;\r\nfunction createOnceHandler(event, handler, capture) {\r\n var _target = target; // save current target element in closure\r\n return function onceHandler() {\r\n var res = handler.apply(null, arguments);\r\n if (res !== null) {\r\n remove(event, onceHandler, capture, _target);\r\n }\r\n };\r\n}\r\n// #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp\r\n// implementation and does not fire microtasks in between event propagation, so\r\n// safe to exclude.\r\nvar useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);\r\nfunction add(name, handler, capture, passive) {\r\n // async edge case #6566: inner click event triggers patch, event handler\r\n // attached to outer element during patch, and triggered again. This\r\n // happens because browsers fire microtask ticks between event propagation.\r\n // the solution is simple: we save the timestamp when a handler is attached,\r\n // and the handler would only fire if the event passed to it was fired\r\n // AFTER it was attached.\r\n if (useMicrotaskFix) {\r\n var attachedTimestamp_1 = currentFlushTimestamp;\r\n var original_1 = handler;\r\n //@ts-expect-error\r\n handler = original_1._wrapper = function (e) {\r\n if (\r\n // no bubbling, should always fire.\r\n // this is just a safety net in case event.timeStamp is unreliable in\r\n // certain weird environments...\r\n e.target === e.currentTarget ||\r\n // event is fired after handler attachment\r\n e.timeStamp >= attachedTimestamp_1 ||\r\n // bail for environments that have buggy event.timeStamp implementations\r\n // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState\r\n // #9681 QtWebEngine event.timeStamp is negative value\r\n e.timeStamp <= 0 ||\r\n // #9448 bail if event is fired in another document in a multi-page\r\n // electron/nw.js app, since event.timeStamp will be using a different\r\n // starting reference\r\n e.target.ownerDocument !== document) {\r\n return original_1.apply(this, arguments);\r\n }\r\n };\r\n }\r\n target.addEventListener(name, handler, supportsPassive$1 ? { capture: capture, passive: passive } : capture);\r\n}\r\nfunction remove(name, handler, capture, _target) {\r\n (_target || target).removeEventListener(name, \r\n //@ts-expect-error\r\n handler._wrapper || handler, capture);\r\n}\r\nfunction updateDOMListeners(oldVnode, vnode) {\r\n if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\r\n return;\r\n }\r\n var on = vnode.data.on || {};\r\n var oldOn = oldVnode.data.on || {};\r\n // vnode is empty when removing all listeners,\r\n // and use old vnode dom element\r\n target = vnode.elm || oldVnode.elm;\r\n normalizeEvents(on);\r\n updateListeners(on, oldOn, add, remove, createOnceHandler, vnode.context);\r\n target = undefined;\r\n}\r\nvar events = {\r\n create: updateDOMListeners,\r\n update: updateDOMListeners,\r\n // @ts-expect-error emptyNode has actually data\r\n destroy: function (vnode) { return updateDOMListeners(vnode, emptyNode); }\r\n};\n\nvar svgContainer;\r\nfunction updateDOMProps(oldVnode, vnode) {\r\n if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\r\n return;\r\n }\r\n var key, cur;\r\n var elm = vnode.elm;\r\n var oldProps = oldVnode.data.domProps || {};\r\n var props = vnode.data.domProps || {};\r\n // clone observed objects, as the user probably wants to mutate it\r\n if (isDef(props.__ob__) || isTrue(props._v_attr_proxy)) {\r\n props = vnode.data.domProps = extend({}, props);\r\n }\r\n for (key in oldProps) {\r\n if (!(key in props)) {\r\n elm[key] = '';\r\n }\r\n }\r\n for (key in props) {\r\n cur = props[key];\r\n // ignore children if the node has textContent or innerHTML,\r\n // as these will throw away existing DOM nodes and cause removal errors\r\n // on subsequent patches (#3360)\r\n if (key === 'textContent' || key === 'innerHTML') {\r\n if (vnode.children)\r\n vnode.children.length = 0;\r\n if (cur === oldProps[key])\r\n continue;\r\n // #6601 work around Chrome version <= 55 bug where single textNode\r\n // replaced by innerHTML/textContent retains its parentNode property\r\n if (elm.childNodes.length === 1) {\r\n elm.removeChild(elm.childNodes[0]);\r\n }\r\n }\r\n if (key === 'value' && elm.tagName !== 'PROGRESS') {\r\n // store value as _value as well since\r\n // non-string values will be stringified\r\n elm._value = cur;\r\n // avoid resetting cursor position when value is the same\r\n var strCur = isUndef(cur) ? '' : String(cur);\r\n if (shouldUpdateValue(elm, strCur)) {\r\n elm.value = strCur;\r\n }\r\n }\r\n else if (key === 'innerHTML' &&\r\n isSVG(elm.tagName) &&\r\n isUndef(elm.innerHTML)) {\r\n // IE doesn't support innerHTML for SVG elements\r\n svgContainer = svgContainer || document.createElement('div');\r\n svgContainer.innerHTML = \"<svg>\".concat(cur, \"</svg>\");\r\n var svg = svgContainer.firstChild;\r\n while (elm.firstChild) {\r\n elm.removeChild(elm.firstChild);\r\n }\r\n while (svg.firstChild) {\r\n elm.appendChild(svg.firstChild);\r\n }\r\n }\r\n else if (\r\n // skip the update if old and new VDOM state is the same.\r\n // `value` is handled separately because the DOM value may be temporarily\r\n // out of sync with VDOM state due to focus, composition and modifiers.\r\n // This #4521 by skipping the unnecessary `checked` update.\r\n cur !== oldProps[key]) {\r\n // some property updates can throw\r\n // e.g. `value` on <progress> w/ non-finite value\r\n try {\r\n elm[key] = cur;\r\n }\r\n catch (e) { }\r\n }\r\n }\r\n}\r\nfunction shouldUpdateValue(elm, checkVal) {\r\n return (\r\n //@ts-expect-error\r\n !elm.composing &&\r\n (elm.tagName === 'OPTION' ||\r\n isNotInFocusAndDirty(elm, checkVal) ||\r\n isDirtyWithModifiers(elm, checkVal)));\r\n}\r\nfunction isNotInFocusAndDirty(elm, checkVal) {\r\n // return true when textbox (.number and .trim) loses focus and its value is\r\n // not equal to the updated value\r\n var notInFocus = true;\r\n // #6157\r\n // work around IE bug when accessing document.activeElement in an iframe\r\n try {\r\n notInFocus = document.activeElement !== elm;\r\n }\r\n catch (e) { }\r\n return notInFocus && elm.value !== checkVal;\r\n}\r\nfunction isDirtyWithModifiers(elm, newVal) {\r\n var value = elm.value;\r\n var modifiers = elm._vModifiers; // injected by v-model runtime\r\n if (isDef(modifiers)) {\r\n if (modifiers.number) {\r\n return toNumber(value) !== toNumber(newVal);\r\n }\r\n if (modifiers.trim) {\r\n return value.trim() !== newVal.trim();\r\n }\r\n }\r\n return value !== newVal;\r\n}\r\nvar domProps = {\r\n create: updateDOMProps,\r\n update: updateDOMProps\r\n};\n\nvar parseStyleText = cached(function (cssText) {\r\n var res = {};\r\n var listDelimiter = /;(?![^(]*\\))/g;\r\n var propertyDelimiter = /:(.+)/;\r\n cssText.split(listDelimiter).forEach(function (item) {\r\n if (item) {\r\n var tmp = item.split(propertyDelimiter);\r\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\r\n }\r\n });\r\n return res;\r\n});\r\n// merge static and dynamic style data on the same vnode\r\nfunction normalizeStyleData(data) {\r\n var style = normalizeStyleBinding(data.style);\r\n // static style is pre-processed into an object during compilation\r\n // and is always a fresh object, so it's safe to merge into it\r\n return data.staticStyle ? extend(data.staticStyle, style) : style;\r\n}\r\n// normalize possible array / string values into Object\r\nfunction normalizeStyleBinding(bindingStyle) {\r\n if (Array.isArray(bindingStyle)) {\r\n return toObject(bindingStyle);\r\n }\r\n if (typeof bindingStyle === 'string') {\r\n return parseStyleText(bindingStyle);\r\n }\r\n return bindingStyle;\r\n}\r\n/**\r\n * parent component style should be after child's\r\n * so that parent component's style could override it\r\n */\r\nfunction getStyle(vnode, checkChild) {\r\n var res = {};\r\n var styleData;\r\n if (checkChild) {\r\n var childNode = vnode;\r\n while (childNode.componentInstance) {\r\n childNode = childNode.componentInstance._vnode;\r\n if (childNode &&\r\n childNode.data &&\r\n (styleData = normalizeStyleData(childNode.data))) {\r\n extend(res, styleData);\r\n }\r\n }\r\n }\r\n if ((styleData = normalizeStyleData(vnode.data))) {\r\n extend(res, styleData);\r\n }\r\n var parentNode = vnode;\r\n // @ts-expect-error parentNode.parent not VNodeWithData\r\n while ((parentNode = parentNode.parent)) {\r\n if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\r\n extend(res, styleData);\r\n }\r\n }\r\n return res;\r\n}\n\nvar cssVarRE = /^--/;\r\nvar importantRE = /\\s*!important$/;\r\nvar setProp = function (el, name, val) {\r\n /* istanbul ignore if */\r\n if (cssVarRE.test(name)) {\r\n el.style.setProperty(name, val);\r\n }\r\n else if (importantRE.test(val)) {\r\n el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');\r\n }\r\n else {\r\n var normalizedName = normalize(name);\r\n if (Array.isArray(val)) {\r\n // Support values array created by autoprefixer, e.g.\r\n // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\r\n // Set them one by one, and the browser will only set those it can recognize\r\n for (var i = 0, len = val.length; i < len; i++) {\r\n el.style[normalizedName] = val[i];\r\n }\r\n }\r\n else {\r\n el.style[normalizedName] = val;\r\n }\r\n }\r\n};\r\nvar vendorNames = ['Webkit', 'Moz', 'ms'];\r\nvar emptyStyle;\r\nvar normalize = cached(function (prop) {\r\n emptyStyle = emptyStyle || document.createElement('div').style;\r\n prop = camelize(prop);\r\n if (prop !== 'filter' && prop in emptyStyle) {\r\n return prop;\r\n }\r\n var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\r\n for (var i = 0; i < vendorNames.length; i++) {\r\n var name_1 = vendorNames[i] + capName;\r\n if (name_1 in emptyStyle) {\r\n return name_1;\r\n }\r\n }\r\n});\r\nfunction updateStyle(oldVnode, vnode) {\r\n var data = vnode.data;\r\n var oldData = oldVnode.data;\r\n if (isUndef(data.staticStyle) &&\r\n isUndef(data.style) &&\r\n isUndef(oldData.staticStyle) &&\r\n isUndef(oldData.style)) {\r\n return;\r\n }\r\n var cur, name;\r\n var el = vnode.elm;\r\n var oldStaticStyle = oldData.staticStyle;\r\n var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\r\n // if static style exists, stylebinding already merged into it when doing normalizeStyleData\r\n var oldStyle = oldStaticStyle || oldStyleBinding;\r\n var style = normalizeStyleBinding(vnode.data.style) || {};\r\n // store normalized style under a different key for next diff\r\n // make sure to clone it if it's reactive, since the user likely wants\r\n // to mutate it.\r\n vnode.data.normalizedStyle = isDef(style.__ob__) ? extend({}, style) : style;\r\n var newStyle = getStyle(vnode, true);\r\n for (name in oldStyle) {\r\n if (isUndef(newStyle[name])) {\r\n setProp(el, name, '');\r\n }\r\n }\r\n for (name in newStyle) {\r\n cur = newStyle[name];\r\n if (cur !== oldStyle[name]) {\r\n // ie9 setting to null has no effect, must use empty string\r\n setProp(el, name, cur == null ? '' : cur);\r\n }\r\n }\r\n}\r\nvar style = {\r\n create: updateStyle,\r\n update: updateStyle\r\n};\n\nvar whitespaceRE = /\\s+/;\r\n/**\r\n * Add class with compatibility for SVG since classList is not supported on\r\n * SVG elements in IE\r\n */\r\nfunction addClass(el, cls) {\r\n /* istanbul ignore if */\r\n if (!cls || !(cls = cls.trim())) {\r\n return;\r\n }\r\n /* istanbul ignore else */\r\n if (el.classList) {\r\n if (cls.indexOf(' ') > -1) {\r\n cls.split(whitespaceRE).forEach(function (c) { return el.classList.add(c); });\r\n }\r\n else {\r\n el.classList.add(cls);\r\n }\r\n }\r\n else {\r\n var cur = \" \".concat(el.getAttribute('class') || '', \" \");\r\n if (cur.indexOf(' ' + cls + ' ') < 0) {\r\n el.setAttribute('class', (cur + cls).trim());\r\n }\r\n }\r\n}\r\n/**\r\n * Remove class with compatibility for SVG since classList is not supported on\r\n * SVG elements in IE\r\n */\r\nfunction removeClass(el, cls) {\r\n /* istanbul ignore if */\r\n if (!cls || !(cls = cls.trim())) {\r\n return;\r\n }\r\n /* istanbul ignore else */\r\n if (el.classList) {\r\n if (cls.indexOf(' ') > -1) {\r\n cls.split(whitespaceRE).forEach(function (c) { return el.classList.remove(c); });\r\n }\r\n else {\r\n el.classList.remove(cls);\r\n }\r\n if (!el.classList.length) {\r\n el.removeAttribute('class');\r\n }\r\n }\r\n else {\r\n var cur = \" \".concat(el.getAttribute('class') || '', \" \");\r\n var tar = ' ' + cls + ' ';\r\n while (cur.indexOf(tar) >= 0) {\r\n cur = cur.replace(tar, ' ');\r\n }\r\n cur = cur.trim();\r\n if (cur) {\r\n el.setAttribute('class', cur);\r\n }\r\n else {\r\n el.removeAttribute('class');\r\n }\r\n }\r\n}\n\nfunction resolveTransition(def) {\r\n if (!def) {\r\n return;\r\n }\r\n /* istanbul ignore else */\r\n if (typeof def === 'object') {\r\n var res = {};\r\n if (def.css !== false) {\r\n extend(res, autoCssTransition(def.name || 'v'));\r\n }\r\n extend(res, def);\r\n return res;\r\n }\r\n else if (typeof def === 'string') {\r\n return autoCssTransition(def);\r\n }\r\n}\r\nvar autoCssTransition = cached(function (name) {\r\n return {\r\n enterClass: \"\".concat(name, \"-enter\"),\r\n enterToClass: \"\".concat(name, \"-enter-to\"),\r\n enterActiveClass: \"\".concat(name, \"-enter-active\"),\r\n leaveClass: \"\".concat(name, \"-leave\"),\r\n leaveToClass: \"\".concat(name, \"-leave-to\"),\r\n leaveActiveClass: \"\".concat(name, \"-leave-active\")\r\n };\r\n});\r\nvar hasTransition = inBrowser && !isIE9;\r\nvar TRANSITION = 'transition';\r\nvar ANIMATION = 'animation';\r\n// Transition property/event sniffing\r\nvar transitionProp = 'transition';\r\nvar transitionEndEvent = 'transitionend';\r\nvar animationProp = 'animation';\r\nvar animationEndEvent = 'animationend';\r\nif (hasTransition) {\r\n /* istanbul ignore if */\r\n if (window.ontransitionend === undefined &&\r\n window.onwebkittransitionend !== undefined) {\r\n transitionProp = 'WebkitTransition';\r\n transitionEndEvent = 'webkitTransitionEnd';\r\n }\r\n if (window.onanimationend === undefined &&\r\n window.onwebkitanimationend !== undefined) {\r\n animationProp = 'WebkitAnimation';\r\n animationEndEvent = 'webkitAnimationEnd';\r\n }\r\n}\r\n// binding to window is necessary to make hot reload work in IE in strict mode\r\nvar raf = inBrowser\r\n ? window.requestAnimationFrame\r\n ? window.requestAnimationFrame.bind(window)\r\n : setTimeout\r\n : /* istanbul ignore next */ function (/* istanbul ignore next */ fn) { return fn(); };\r\nfunction nextFrame$1(fn) {\r\n raf(function () {\r\n // @ts-expect-error\r\n raf(fn);\r\n });\r\n}\r\nfunction addTransitionClass(el, cls) {\r\n var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\r\n if (transitionClasses.indexOf(cls) < 0) {\r\n transitionClasses.push(cls);\r\n addClass(el, cls);\r\n }\r\n}\r\nfunction removeTransitionClass(el, cls) {\r\n if (el._transitionClasses) {\r\n remove$2(el._transitionClasses, cls);\r\n }\r\n removeClass(el, cls);\r\n}\r\nfunction whenTransitionEnds(el, expectedType, cb) {\r\n var _a = getTransitionInfo(el, expectedType), type = _a.type, timeout = _a.timeout, propCount = _a.propCount;\r\n if (!type)\r\n return cb();\r\n var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\r\n var ended = 0;\r\n var end = function () {\r\n el.removeEventListener(event, onEnd);\r\n cb();\r\n };\r\n var onEnd = function (e) {\r\n if (e.target === el) {\r\n if (++ended >= propCount) {\r\n end();\r\n }\r\n }\r\n };\r\n setTimeout(function () {\r\n if (ended < propCount) {\r\n end();\r\n }\r\n }, timeout + 1);\r\n el.addEventListener(event, onEnd);\r\n}\r\nvar transformRE = /\\b(transform|all)(,|$)/;\r\nfunction getTransitionInfo(el, expectedType) {\r\n var styles = window.getComputedStyle(el);\r\n // JSDOM may return undefined for transition properties\r\n var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');\r\n var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');\r\n var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\r\n var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');\r\n var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');\r\n var animationTimeout = getTimeout(animationDelays, animationDurations);\r\n var type;\r\n var timeout = 0;\r\n var propCount = 0;\r\n /* istanbul ignore if */\r\n if (expectedType === TRANSITION) {\r\n if (transitionTimeout > 0) {\r\n type = TRANSITION;\r\n timeout = transitionTimeout;\r\n propCount = transitionDurations.length;\r\n }\r\n }\r\n else if (expectedType === ANIMATION) {\r\n if (animationTimeout > 0) {\r\n type = ANIMATION;\r\n timeout = animationTimeout;\r\n propCount = animationDurations.length;\r\n }\r\n }\r\n else {\r\n timeout = Math.max(transitionTimeout, animationTimeout);\r\n type =\r\n timeout > 0\r\n ? transitionTimeout > animationTimeout\r\n ? TRANSITION\r\n : ANIMATION\r\n : null;\r\n propCount = type\r\n ? type === TRANSITION\r\n ? transitionDurations.length\r\n : animationDurations.length\r\n : 0;\r\n }\r\n var hasTransform = type === TRANSITION && transformRE.test(styles[transitionProp + 'Property']);\r\n return {\r\n type: type,\r\n timeout: timeout,\r\n propCount: propCount,\r\n hasTransform: hasTransform\r\n };\r\n}\r\nfunction getTimeout(delays, durations) {\r\n /* istanbul ignore next */\r\n while (delays.length < durations.length) {\r\n delays = delays.concat(delays);\r\n }\r\n return Math.max.apply(null, durations.map(function (d, i) {\r\n return toMs(d) + toMs(delays[i]);\r\n }));\r\n}\r\n// Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers\r\n// in a locale-dependent way, using a comma instead of a dot.\r\n// If comma is not replaced with a dot, the input will be rounded down (i.e. acting\r\n// as a floor function) causing unexpected behaviors\r\nfunction toMs(s) {\r\n return Number(s.slice(0, -1).replace(',', '.')) * 1000;\r\n}\n\nfunction enter(vnode, toggleDisplay) {\r\n var el = vnode.elm;\r\n // call leave callback now\r\n if (isDef(el._leaveCb)) {\r\n el._leaveCb.cancelled = true;\r\n el._leaveCb();\r\n }\r\n var data = resolveTransition(vnode.data.transition);\r\n if (isUndef(data)) {\r\n return;\r\n }\r\n /* istanbul ignore if */\r\n if (isDef(el._enterCb) || el.nodeType !== 1) {\r\n return;\r\n }\r\n var css = data.css, type = data.type, enterClass = data.enterClass, enterToClass = data.enterToClass, enterActiveClass = data.enterActiveClass, appearClass = data.appearClass, appearToClass = data.appearToClass, appearActiveClass = data.appearActiveClass, beforeEnter = data.beforeEnter, enter = data.enter, afterEnter = data.afterEnter, enterCancelled = data.enterCancelled, beforeAppear = data.beforeAppear, appear = data.appear, afterAppear = data.afterAppear, appearCancelled = data.appearCancelled, duration = data.duration;\r\n // activeInstance will always be the <transition> component managing this\r\n // transition. One edge case to check is when the <transition> is placed\r\n // as the root node of a child component. In that case we need to check\r\n // <transition>'s parent for appear check.\r\n var context = activeInstance;\r\n var transitionNode = activeInstance.$vnode;\r\n while (transitionNode && transitionNode.parent) {\r\n context = transitionNode.context;\r\n transitionNode = transitionNode.parent;\r\n }\r\n var isAppear = !context._isMounted || !vnode.isRootInsert;\r\n if (isAppear && !appear && appear !== '') {\r\n return;\r\n }\r\n var startClass = isAppear && appearClass ? appearClass : enterClass;\r\n var activeClass = isAppear && appearActiveClass ? appearActiveClass : enterActiveClass;\r\n var toClass = isAppear && appearToClass ? appearToClass : enterToClass;\r\n var beforeEnterHook = isAppear ? beforeAppear || beforeEnter : beforeEnter;\r\n var enterHook = isAppear ? (isFunction(appear) ? appear : enter) : enter;\r\n var afterEnterHook = isAppear ? afterAppear || afterEnter : afterEnter;\r\n var enterCancelledHook = isAppear\r\n ? appearCancelled || enterCancelled\r\n : enterCancelled;\r\n var explicitEnterDuration = toNumber(isObject(duration) ? duration.enter : duration);\r\n if (process.env.NODE_ENV !== 'production' && explicitEnterDuration != null) {\r\n checkDuration(explicitEnterDuration, 'enter', vnode);\r\n }\r\n var expectsCSS = css !== false && !isIE9;\r\n var userWantsControl = getHookArgumentsLength(enterHook);\r\n var cb = (el._enterCb = once(function () {\r\n if (expectsCSS) {\r\n removeTransitionClass(el, toClass);\r\n removeTransitionClass(el, activeClass);\r\n }\r\n // @ts-expect-error\r\n if (cb.cancelled) {\r\n if (expectsCSS) {\r\n removeTransitionClass(el, startClass);\r\n }\r\n enterCancelledHook && enterCancelledHook(el);\r\n }\r\n else {\r\n afterEnterHook && afterEnterHook(el);\r\n }\r\n el._enterCb = null;\r\n }));\r\n if (!vnode.data.show) {\r\n // remove pending leave element on enter by injecting an insert hook\r\n mergeVNodeHook(vnode, 'insert', function () {\r\n var parent = el.parentNode;\r\n var pendingNode = parent && parent._pending && parent._pending[vnode.key];\r\n if (pendingNode &&\r\n pendingNode.tag === vnode.tag &&\r\n pendingNode.elm._leaveCb) {\r\n pendingNode.elm._leaveCb();\r\n }\r\n enterHook && enterHook(el, cb);\r\n });\r\n }\r\n // start enter transition\r\n beforeEnterHook && beforeEnterHook(el);\r\n if (expectsCSS) {\r\n addTransitionClass(el, startClass);\r\n addTransitionClass(el, activeClass);\r\n nextFrame$1(function () {\r\n removeTransitionClass(el, startClass);\r\n // @ts-expect-error\r\n if (!cb.cancelled) {\r\n addTransitionClass(el, toClass);\r\n if (!userWantsControl) {\r\n if (isValidDuration(explicitEnterDuration)) {\r\n setTimeout(cb, explicitEnterDuration);\r\n }\r\n else {\r\n whenTransitionEnds(el, type, cb);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n if (vnode.data.show) {\r\n toggleDisplay && toggleDisplay();\r\n enterHook && enterHook(el, cb);\r\n }\r\n if (!expectsCSS && !userWantsControl) {\r\n cb();\r\n }\r\n}\r\nfunction leave(vnode, rm) {\r\n var el = vnode.elm;\r\n // call enter callback now\r\n if (isDef(el._enterCb)) {\r\n el._enterCb.cancelled = true;\r\n el._enterCb();\r\n }\r\n var data = resolveTransition(vnode.data.transition);\r\n if (isUndef(data) || el.nodeType !== 1) {\r\n return rm();\r\n }\r\n /* istanbul ignore if */\r\n if (isDef(el._leaveCb)) {\r\n return;\r\n }\r\n var css = data.css, type = data.type, leaveClass = data.leaveClass, leaveToClass = data.leaveToClass, leaveActiveClass = data.leaveActiveClass, beforeLeave = data.beforeLeave, leave = data.leave, afterLeave = data.afterLeave, leaveCancelled = data.leaveCancelled, delayLeave = data.delayLeave, duration = data.duration;\r\n var expectsCSS = css !== false && !isIE9;\r\n var userWantsControl = getHookArgumentsLength(leave);\r\n var explicitLeaveDuration = toNumber(isObject(duration) ? duration.leave : duration);\r\n if (process.env.NODE_ENV !== 'production' && isDef(explicitLeaveDuration)) {\r\n checkDuration(explicitLeaveDuration, 'leave', vnode);\r\n }\r\n var cb = (el._leaveCb = once(function () {\r\n if (el.parentNode && el.parentNode._pending) {\r\n el.parentNode._pending[vnode.key] = null;\r\n }\r\n if (expectsCSS) {\r\n removeTransitionClass(el, leaveToClass);\r\n removeTransitionClass(el, leaveActiveClass);\r\n }\r\n // @ts-expect-error\r\n if (cb.cancelled) {\r\n if (expectsCSS) {\r\n removeTransitionClass(el, leaveClass);\r\n }\r\n leaveCancelled && leaveCancelled(el);\r\n }\r\n else {\r\n rm();\r\n afterLeave && afterLeave(el);\r\n }\r\n el._leaveCb = null;\r\n }));\r\n if (delayLeave) {\r\n delayLeave(performLeave);\r\n }\r\n else {\r\n performLeave();\r\n }\r\n function performLeave() {\r\n // the delayed leave may have already been cancelled\r\n // @ts-expect-error\r\n if (cb.cancelled) {\r\n return;\r\n }\r\n // record leaving element\r\n if (!vnode.data.show && el.parentNode) {\r\n (el.parentNode._pending || (el.parentNode._pending = {}))[vnode.key] =\r\n vnode;\r\n }\r\n beforeLeave && beforeLeave(el);\r\n if (expectsCSS) {\r\n addTransitionClass(el, leaveClass);\r\n addTransitionClass(el, leaveActiveClass);\r\n nextFrame$1(function () {\r\n removeTransitionClass(el, leaveClass);\r\n // @ts-expect-error\r\n if (!cb.cancelled) {\r\n addTransitionClass(el, leaveToClass);\r\n if (!userWantsControl) {\r\n if (isValidDuration(explicitLeaveDuration)) {\r\n setTimeout(cb, explicitLeaveDuration);\r\n }\r\n else {\r\n whenTransitionEnds(el, type, cb);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n leave && leave(el, cb);\r\n if (!expectsCSS && !userWantsControl) {\r\n cb();\r\n }\r\n }\r\n}\r\n// only used in dev mode\r\nfunction checkDuration(val, name, vnode) {\r\n if (typeof val !== 'number') {\r\n warn(\"<transition> explicit \".concat(name, \" duration is not a valid number - \") +\r\n \"got \".concat(JSON.stringify(val), \".\"), vnode.context);\r\n }\r\n else if (isNaN(val)) {\r\n warn(\"<transition> explicit \".concat(name, \" duration is NaN - \") +\r\n 'the duration expression might be incorrect.', vnode.context);\r\n }\r\n}\r\nfunction isValidDuration(val) {\r\n return typeof val === 'number' && !isNaN(val);\r\n}\r\n/**\r\n * Normalize a transition hook's argument length. The hook may be:\r\n * - a merged hook (invoker) with the original in .fns\r\n * - a wrapped component method (check ._length)\r\n * - a plain function (.length)\r\n */\r\nfunction getHookArgumentsLength(fn) {\r\n if (isUndef(fn)) {\r\n return false;\r\n }\r\n // @ts-expect-error\r\n var invokerFns = fn.fns;\r\n if (isDef(invokerFns)) {\r\n // invoker\r\n return getHookArgumentsLength(Array.isArray(invokerFns) ? invokerFns[0] : invokerFns);\r\n }\r\n else {\r\n // @ts-expect-error\r\n return (fn._length || fn.length) > 1;\r\n }\r\n}\r\nfunction _enter(_, vnode) {\r\n if (vnode.data.show !== true) {\r\n enter(vnode);\r\n }\r\n}\r\nvar transition = inBrowser\r\n ? {\r\n create: _enter,\r\n activate: _enter,\r\n remove: function (vnode, rm) {\r\n /* istanbul ignore else */\r\n if (vnode.data.show !== true) {\r\n // @ts-expect-error\r\n leave(vnode, rm);\r\n }\r\n else {\r\n rm();\r\n }\r\n }\r\n }\r\n : {};\n\nvar platformModules = [attrs, klass, events, domProps, style, transition];\n\n// the directive module should be applied last, after all\r\n// built-in modules have been applied.\r\nvar modules = platformModules.concat(baseModules);\r\nvar patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });\n\n/**\r\n * Not type checking this file because flow doesn't like attaching\r\n * properties to Elements.\r\n */\r\n/* istanbul ignore if */\r\nif (isIE9) {\r\n // http://www.matts411.com/post/internet-explorer-9-oninput/\r\n document.addEventListener('selectionchange', function () {\r\n var el = document.activeElement;\r\n // @ts-expect-error\r\n if (el && el.vmodel) {\r\n trigger(el, 'input');\r\n }\r\n });\r\n}\r\nvar directive = {\r\n inserted: function (el, binding, vnode, oldVnode) {\r\n if (vnode.tag === 'select') {\r\n // #6903\r\n if (oldVnode.elm && !oldVnode.elm._vOptions) {\r\n mergeVNodeHook(vnode, 'postpatch', function () {\r\n directive.componentUpdated(el, binding, vnode);\r\n });\r\n }\r\n else {\r\n setSelected(el, binding, vnode.context);\r\n }\r\n el._vOptions = [].map.call(el.options, getValue);\r\n }\r\n else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\r\n el._vModifiers = binding.modifiers;\r\n if (!binding.modifiers.lazy) {\r\n el.addEventListener('compositionstart', onCompositionStart);\r\n el.addEventListener('compositionend', onCompositionEnd);\r\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\r\n // switching focus before confirming composition choice\r\n // this also fixes the issue where some browsers e.g. iOS Chrome\r\n // fires \"change\" instead of \"input\" on autocomplete.\r\n el.addEventListener('change', onCompositionEnd);\r\n /* istanbul ignore if */\r\n if (isIE9) {\r\n el.vmodel = true;\r\n }\r\n }\r\n }\r\n },\r\n componentUpdated: function (el, binding, vnode) {\r\n if (vnode.tag === 'select') {\r\n setSelected(el, binding, vnode.context);\r\n // in case the options rendered by v-for have changed,\r\n // it's possible that the value is out-of-sync with the rendered options.\r\n // detect such cases and filter out values that no longer has a matching\r\n // option in the DOM.\r\n var prevOptions_1 = el._vOptions;\r\n var curOptions_1 = (el._vOptions = [].map.call(el.options, getValue));\r\n if (curOptions_1.some(function (o, i) { return !looseEqual(o, prevOptions_1[i]); })) {\r\n // trigger change event if\r\n // no matching option found for at least one value\r\n var needReset = el.multiple\r\n ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions_1); })\r\n : binding.value !== binding.oldValue &&\r\n hasNoMatchingOption(binding.value, curOptions_1);\r\n if (needReset) {\r\n trigger(el, 'change');\r\n }\r\n }\r\n }\r\n }\r\n};\r\nfunction setSelected(el, binding, vm) {\r\n actuallySetSelected(el, binding, vm);\r\n /* istanbul ignore if */\r\n if (isIE$1 || isEdge) {\r\n setTimeout(function () {\r\n actuallySetSelected(el, binding, vm);\r\n }, 0);\r\n }\r\n}\r\nfunction actuallySetSelected(el, binding, vm) {\r\n var value = binding.value;\r\n var isMultiple = el.multiple;\r\n if (isMultiple && !Array.isArray(value)) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn(\"<select multiple v-model=\\\"\".concat(binding.expression, \"\\\"> \") +\r\n \"expects an Array value for its binding, but got \".concat(Object.prototype.toString\r\n .call(value)\r\n .slice(8, -1)), vm);\r\n return;\r\n }\r\n var selected, option;\r\n for (var i = 0, l = el.options.length; i < l; i++) {\r\n option = el.options[i];\r\n if (isMultiple) {\r\n selected = looseIndexOf(value, getValue(option)) > -1;\r\n if (option.selected !== selected) {\r\n option.selected = selected;\r\n }\r\n }\r\n else {\r\n if (looseEqual(getValue(option), value)) {\r\n if (el.selectedIndex !== i) {\r\n el.selectedIndex = i;\r\n }\r\n return;\r\n }\r\n }\r\n }\r\n if (!isMultiple) {\r\n el.selectedIndex = -1;\r\n }\r\n}\r\nfunction hasNoMatchingOption(value, options) {\r\n return options.every(function (o) { return !looseEqual(o, value); });\r\n}\r\nfunction getValue(option) {\r\n return '_value' in option ? option._value : option.value;\r\n}\r\nfunction onCompositionStart(e) {\r\n e.target.composing = true;\r\n}\r\nfunction onCompositionEnd(e) {\r\n // prevent triggering an input event for no reason\r\n if (!e.target.composing)\r\n return;\r\n e.target.composing = false;\r\n trigger(e.target, 'input');\r\n}\r\nfunction trigger(el, type) {\r\n var e = document.createEvent('HTMLEvents');\r\n e.initEvent(type, true, true);\r\n el.dispatchEvent(e);\r\n}\n\n// recursively search for possible transition defined inside the component root\r\nfunction locateNode(vnode) {\r\n // @ts-expect-error\r\n return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\r\n ? locateNode(vnode.componentInstance._vnode)\r\n : vnode;\r\n}\r\nvar show = {\r\n bind: function (el, _a, vnode) {\r\n var value = _a.value;\r\n vnode = locateNode(vnode);\r\n var transition = vnode.data && vnode.data.transition;\r\n var originalDisplay = (el.__vOriginalDisplay =\r\n el.style.display === 'none' ? '' : el.style.display);\r\n if (value && transition) {\r\n vnode.data.show = true;\r\n enter(vnode, function () {\r\n el.style.display = originalDisplay;\r\n });\r\n }\r\n else {\r\n el.style.display = value ? originalDisplay : 'none';\r\n }\r\n },\r\n update: function (el, _a, vnode) {\r\n var value = _a.value, oldValue = _a.oldValue;\r\n /* istanbul ignore if */\r\n if (!value === !oldValue)\r\n return;\r\n vnode = locateNode(vnode);\r\n var transition = vnode.data && vnode.data.transition;\r\n if (transition) {\r\n vnode.data.show = true;\r\n if (value) {\r\n enter(vnode, function () {\r\n el.style.display = el.__vOriginalDisplay;\r\n });\r\n }\r\n else {\r\n leave(vnode, function () {\r\n el.style.display = 'none';\r\n });\r\n }\r\n }\r\n else {\r\n el.style.display = value ? el.__vOriginalDisplay : 'none';\r\n }\r\n },\r\n unbind: function (el, binding, vnode, oldVnode, isDestroy) {\r\n if (!isDestroy) {\r\n el.style.display = el.__vOriginalDisplay;\r\n }\r\n }\r\n};\n\nvar platformDirectives = {\r\n model: directive,\r\n show: show\r\n};\n\n// Provides transition support for a single element/component.\r\nvar transitionProps = {\r\n name: String,\r\n appear: Boolean,\r\n css: Boolean,\r\n mode: String,\r\n type: String,\r\n enterClass: String,\r\n leaveClass: String,\r\n enterToClass: String,\r\n leaveToClass: String,\r\n enterActiveClass: String,\r\n leaveActiveClass: String,\r\n appearClass: String,\r\n appearActiveClass: String,\r\n appearToClass: String,\r\n duration: [Number, String, Object]\r\n};\r\n// in case the child is also an abstract component, e.g. <keep-alive>\r\n// we want to recursively retrieve the real component to be rendered\r\nfunction getRealChild(vnode) {\r\n var compOptions = vnode && vnode.componentOptions;\r\n if (compOptions && compOptions.Ctor.options.abstract) {\r\n return getRealChild(getFirstComponentChild(compOptions.children));\r\n }\r\n else {\r\n return vnode;\r\n }\r\n}\r\nfunction extractTransitionData(comp) {\r\n var data = {};\r\n var options = comp.$options;\r\n // props\r\n for (var key in options.propsData) {\r\n data[key] = comp[key];\r\n }\r\n // events.\r\n // extract listeners and pass them directly to the transition methods\r\n var listeners = options._parentListeners;\r\n for (var key in listeners) {\r\n data[camelize(key)] = listeners[key];\r\n }\r\n return data;\r\n}\r\nfunction placeholder(h, rawChild) {\r\n // @ts-expect-error\r\n if (/\\d-keep-alive$/.test(rawChild.tag)) {\r\n return h('keep-alive', {\r\n props: rawChild.componentOptions.propsData\r\n });\r\n }\r\n}\r\nfunction hasParentTransition(vnode) {\r\n while ((vnode = vnode.parent)) {\r\n if (vnode.data.transition) {\r\n return true;\r\n }\r\n }\r\n}\r\nfunction isSameChild(child, oldChild) {\r\n return oldChild.key === child.key && oldChild.tag === child.tag;\r\n}\r\nvar isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); };\r\nvar isVShowDirective = function (d) { return d.name === 'show'; };\r\nvar Transition = {\r\n name: 'transition',\r\n props: transitionProps,\r\n abstract: true,\r\n render: function (h) {\r\n var _this = this;\r\n var children = this.$slots.default;\r\n if (!children) {\r\n return;\r\n }\r\n // filter out text nodes (possible whitespaces)\r\n children = children.filter(isNotTextNode);\r\n /* istanbul ignore if */\r\n if (!children.length) {\r\n return;\r\n }\r\n // warn multiple elements\r\n if (process.env.NODE_ENV !== 'production' && children.length > 1) {\r\n warn('<transition> can only be used on a single element. Use ' +\r\n '<transition-group> for lists.', this.$parent);\r\n }\r\n var mode = this.mode;\r\n // warn invalid mode\r\n if (process.env.NODE_ENV !== 'production' && mode && mode !== 'in-out' && mode !== 'out-in') {\r\n warn('invalid <transition> mode: ' + mode, this.$parent);\r\n }\r\n var rawChild = children[0];\r\n // if this is a component root node and the component's\r\n // parent container node also has transition, skip.\r\n if (hasParentTransition(this.$vnode)) {\r\n return rawChild;\r\n }\r\n // apply transition data to child\r\n // use getRealChild() to ignore abstract components e.g. keep-alive\r\n var child = getRealChild(rawChild);\r\n /* istanbul ignore if */\r\n if (!child) {\r\n return rawChild;\r\n }\r\n if (this._leaving) {\r\n return placeholder(h, rawChild);\r\n }\r\n // ensure a key that is unique to the vnode type and to this transition\r\n // component instance. This key will be used to remove pending leaving nodes\r\n // during entering.\r\n var id = \"__transition-\".concat(this._uid, \"-\");\r\n child.key =\r\n child.key == null\r\n ? child.isComment\r\n ? id + 'comment'\r\n : id + child.tag\r\n : isPrimitive(child.key)\r\n ? String(child.key).indexOf(id) === 0\r\n ? child.key\r\n : id + child.key\r\n : child.key;\r\n var data = ((child.data || (child.data = {})).transition =\r\n extractTransitionData(this));\r\n var oldRawChild = this._vnode;\r\n var oldChild = getRealChild(oldRawChild);\r\n // mark v-show\r\n // so that the transition module can hand over the control to the directive\r\n if (child.data.directives && child.data.directives.some(isVShowDirective)) {\r\n child.data.show = true;\r\n }\r\n if (oldChild &&\r\n oldChild.data &&\r\n !isSameChild(child, oldChild) &&\r\n !isAsyncPlaceholder(oldChild) &&\r\n // #6687 component root is a comment node\r\n !(oldChild.componentInstance &&\r\n oldChild.componentInstance._vnode.isComment)) {\r\n // replace old child transition data with fresh one\r\n // important for dynamic transitions!\r\n var oldData = (oldChild.data.transition = extend({}, data));\r\n // handle transition mode\r\n if (mode === 'out-in') {\r\n // return placeholder node and queue update when leave finishes\r\n this._leaving = true;\r\n mergeVNodeHook(oldData, 'afterLeave', function () {\r\n _this._leaving = false;\r\n _this.$forceUpdate();\r\n });\r\n return placeholder(h, rawChild);\r\n }\r\n else if (mode === 'in-out') {\r\n if (isAsyncPlaceholder(child)) {\r\n return oldRawChild;\r\n }\r\n var delayedLeave_1;\r\n var performLeave = function () {\r\n delayedLeave_1();\r\n };\r\n mergeVNodeHook(data, 'afterEnter', performLeave);\r\n mergeVNodeHook(data, 'enterCancelled', performLeave);\r\n mergeVNodeHook(oldData, 'delayLeave', function (leave) {\r\n delayedLeave_1 = leave;\r\n });\r\n }\r\n }\r\n return rawChild;\r\n }\r\n};\n\n// Provides transition support for list items.\r\nvar props = extend({\r\n tag: String,\r\n moveClass: String\r\n}, transitionProps);\r\ndelete props.mode;\r\nvar TransitionGroup = {\r\n props: props,\r\n beforeMount: function () {\r\n var _this = this;\r\n var update = this._update;\r\n this._update = function (vnode, hydrating) {\r\n var restoreActiveInstance = setActiveInstance(_this);\r\n // force removing pass\r\n _this.__patch__(_this._vnode, _this.kept, false, // hydrating\r\n true // removeOnly (!important, avoids unnecessary moves)\r\n );\r\n _this._vnode = _this.kept;\r\n restoreActiveInstance();\r\n update.call(_this, vnode, hydrating);\r\n };\r\n },\r\n render: function (h) {\r\n var tag = this.tag || this.$vnode.data.tag || 'span';\r\n var map = Object.create(null);\r\n var prevChildren = (this.prevChildren = this.children);\r\n var rawChildren = this.$slots.default || [];\r\n var children = (this.children = []);\r\n var transitionData = extractTransitionData(this);\r\n for (var i = 0; i < rawChildren.length; i++) {\r\n var c = rawChildren[i];\r\n if (c.tag) {\r\n if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\r\n children.push(c);\r\n map[c.key] = c;\r\n (c.data || (c.data = {})).transition = transitionData;\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n var opts = c.componentOptions;\r\n var name_1 = opts\r\n ? getComponentName(opts.Ctor.options) || opts.tag || ''\r\n : c.tag;\r\n warn(\"<transition-group> children must be keyed: <\".concat(name_1, \">\"));\r\n }\r\n }\r\n }\r\n if (prevChildren) {\r\n var kept = [];\r\n var removed = [];\r\n for (var i = 0; i < prevChildren.length; i++) {\r\n var c = prevChildren[i];\r\n c.data.transition = transitionData;\r\n // @ts-expect-error .getBoundingClientRect is not typed in Node\r\n c.data.pos = c.elm.getBoundingClientRect();\r\n if (map[c.key]) {\r\n kept.push(c);\r\n }\r\n else {\r\n removed.push(c);\r\n }\r\n }\r\n this.kept = h(tag, null, kept);\r\n this.removed = removed;\r\n }\r\n return h(tag, null, children);\r\n },\r\n updated: function () {\r\n var children = this.prevChildren;\r\n var moveClass = this.moveClass || (this.name || 'v') + '-move';\r\n if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\r\n return;\r\n }\r\n // we divide the work into three loops to avoid mixing DOM reads and writes\r\n // in each iteration - which helps prevent layout thrashing.\r\n children.forEach(callPendingCbs);\r\n children.forEach(recordPosition);\r\n children.forEach(applyTranslation);\r\n // force reflow to put everything in position\r\n // assign to this to avoid being removed in tree-shaking\r\n // $flow-disable-line\r\n this._reflow = document.body.offsetHeight;\r\n children.forEach(function (c) {\r\n if (c.data.moved) {\r\n var el_1 = c.elm;\r\n var s = el_1.style;\r\n addTransitionClass(el_1, moveClass);\r\n s.transform = s.WebkitTransform = s.transitionDuration = '';\r\n el_1.addEventListener(transitionEndEvent, (el_1._moveCb = function cb(e) {\r\n if (e && e.target !== el_1) {\r\n return;\r\n }\r\n if (!e || /transform$/.test(e.propertyName)) {\r\n el_1.removeEventListener(transitionEndEvent, cb);\r\n el_1._moveCb = null;\r\n removeTransitionClass(el_1, moveClass);\r\n }\r\n }));\r\n }\r\n });\r\n },\r\n methods: {\r\n hasMove: function (el, moveClass) {\r\n /* istanbul ignore if */\r\n if (!hasTransition) {\r\n return false;\r\n }\r\n /* istanbul ignore if */\r\n if (this._hasMove) {\r\n return this._hasMove;\r\n }\r\n // Detect whether an element with the move class applied has\r\n // CSS transitions. Since the element may be inside an entering\r\n // transition at this very moment, we make a clone of it and remove\r\n // all other transition classes applied to ensure only the move class\r\n // is applied.\r\n var clone = el.cloneNode();\r\n if (el._transitionClasses) {\r\n el._transitionClasses.forEach(function (cls) {\r\n removeClass(clone, cls);\r\n });\r\n }\r\n addClass(clone, moveClass);\r\n clone.style.display = 'none';\r\n this.$el.appendChild(clone);\r\n var info = getTransitionInfo(clone);\r\n this.$el.removeChild(clone);\r\n return (this._hasMove = info.hasTransform);\r\n }\r\n }\r\n};\r\nfunction callPendingCbs(c) {\r\n /* istanbul ignore if */\r\n if (c.elm._moveCb) {\r\n c.elm._moveCb();\r\n }\r\n /* istanbul ignore if */\r\n if (c.elm._enterCb) {\r\n c.elm._enterCb();\r\n }\r\n}\r\nfunction recordPosition(c) {\r\n c.data.newPos = c.elm.getBoundingClientRect();\r\n}\r\nfunction applyTranslation(c) {\r\n var oldPos = c.data.pos;\r\n var newPos = c.data.newPos;\r\n var dx = oldPos.left - newPos.left;\r\n var dy = oldPos.top - newPos.top;\r\n if (dx || dy) {\r\n c.data.moved = true;\r\n var s = c.elm.style;\r\n s.transform = s.WebkitTransform = \"translate(\".concat(dx, \"px,\").concat(dy, \"px)\");\r\n s.transitionDuration = '0s';\r\n }\r\n}\n\nvar platformComponents = {\r\n Transition: Transition,\r\n TransitionGroup: TransitionGroup\r\n};\n\n// install platform specific utils\r\nVue.config.mustUseProp = mustUseProp;\r\nVue.config.isReservedTag = isReservedTag;\r\nVue.config.isReservedAttr = isReservedAttr;\r\nVue.config.getTagNamespace = getTagNamespace;\r\nVue.config.isUnknownElement = isUnknownElement;\r\n// install platform runtime directives & components\r\nextend(Vue.options.directives, platformDirectives);\r\nextend(Vue.options.components, platformComponents);\r\n// install platform patch function\r\nVue.prototype.__patch__ = inBrowser ? patch : noop;\r\n// public mount method\r\nVue.prototype.$mount = function (el, hydrating) {\r\n el = el && inBrowser ? query(el) : undefined;\r\n return mountComponent(this, el, hydrating);\r\n};\r\n// devtools global hook\r\n/* istanbul ignore next */\r\nif (inBrowser) {\r\n setTimeout(function () {\r\n if (config$1.devtools) {\r\n if (devtools) {\r\n devtools.emit('init', Vue);\r\n }\r\n else if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {\r\n // @ts-expect-error\r\n console[console.info ? 'info' : 'log']('Download the Vue Devtools extension for a better development experience:\\n' +\r\n 'https://github.com/vuejs/vue-devtools');\r\n }\r\n }\r\n if (process.env.NODE_ENV !== 'production' &&\r\n process.env.NODE_ENV !== 'test' &&\r\n config$1.productionTip !== false &&\r\n typeof console !== 'undefined') {\r\n // @ts-expect-error\r\n console[console.info ? 'info' : 'log'](\"You are running Vue in development mode.\\n\" +\r\n \"Make sure to turn on production mode when deploying for production.\\n\" +\r\n \"See more tips at https://vuejs.org/guide/deployment.html\");\r\n }\r\n }, 0);\r\n}\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction assign(to, from) {\n for (const key in from) {\n if (Object.prototype.hasOwnProperty.call(from, key)) {\n if (typeof from[key] === \"object\" && to[key]) {\n assign(to[key], from[key]);\n } else {\n to[key] = from[key];\n }\n }\n }\n}\nconst config = {\n disabled: false,\n distance: 5,\n skidding: 0,\n container: \"body\",\n boundary: void 0,\n instantMove: false,\n disposeTimeout: 5e3,\n popperTriggers: [],\n strategy: \"absolute\",\n preventOverflow: true,\n flip: true,\n shift: true,\n overflowPadding: 0,\n arrowPadding: 0,\n arrowOverflow: true,\n themes: {\n tooltip: {\n placement: \"top\",\n triggers: [\"hover\", \"focus\", \"touch\"],\n hideTriggers: (events) => [...events, \"click\"],\n delay: {\n show: 200,\n hide: 0\n },\n handleResize: false,\n html: false,\n loadingContent: \"...\"\n },\n dropdown: {\n placement: \"bottom\",\n triggers: [\"click\"],\n delay: 0,\n handleResize: true,\n autoHide: true\n },\n menu: {\n $extend: \"dropdown\",\n triggers: [\"hover\", \"focus\"],\n popperTriggers: [\"hover\", \"focus\"],\n delay: {\n show: 0,\n hide: 400\n }\n }\n }\n};\nfunction getDefaultConfig(theme, key) {\n let themeConfig = config.themes[theme] || {};\n let value;\n do {\n value = themeConfig[key];\n if (typeof value === \"undefined\") {\n if (themeConfig.$extend) {\n themeConfig = config.themes[themeConfig.$extend] || {};\n } else {\n themeConfig = null;\n value = config[key];\n }\n } else {\n themeConfig = null;\n }\n } while (themeConfig);\n return value;\n}\nfunction getThemeClasses(theme) {\n const result = [theme];\n let themeConfig = config.themes[theme] || {};\n do {\n if (themeConfig.$extend && !themeConfig.$resetCss) {\n result.push(themeConfig.$extend);\n themeConfig = config.themes[themeConfig.$extend] || {};\n } else {\n themeConfig = null;\n }\n } while (themeConfig);\n return result.map((c) => `v-popper--theme-${c}`);\n}\nfunction getAllParentThemes(theme) {\n const result = [theme];\n let themeConfig = config.themes[theme] || {};\n do {\n if (themeConfig.$extend) {\n result.push(themeConfig.$extend);\n themeConfig = config.themes[themeConfig.$extend] || {};\n } else {\n themeConfig = null;\n }\n } while (themeConfig);\n return result;\n}\nlet supportsPassive = false;\nif (typeof window !== \"undefined\") {\n supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, \"passive\", {\n get() {\n supportsPassive = true;\n }\n });\n window.addEventListener(\"test\", null, opts);\n } catch (e) {\n }\n}\nlet isIOS = false;\nif (typeof window !== \"undefined\" && typeof navigator !== \"undefined\") {\n isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n}\nconst placements = [\"auto\", \"top\", \"bottom\", \"left\", \"right\"].reduce((acc, base) => acc.concat([\n base,\n `${base}-start`,\n `${base}-end`\n]), []);\nconst SHOW_EVENT_MAP = {\n hover: \"mouseenter\",\n focus: \"focus\",\n click: \"click\",\n touch: \"touchstart\"\n};\nconst HIDE_EVENT_MAP = {\n hover: \"mouseleave\",\n focus: \"blur\",\n click: \"click\",\n touch: \"touchend\"\n};\nfunction removeFromArray(array, item) {\n const index = array.indexOf(item);\n if (index !== -1) {\n array.splice(index, 1);\n }\n}\nfunction nextFrame() {\n return new Promise((resolve) => requestAnimationFrame(() => {\n requestAnimationFrame(resolve);\n }));\n}\nconst shownPoppers = [];\nlet hidingPopper = null;\nconst shownPoppersByTheme = {};\nfunction getShownPoppersByTheme(theme) {\n let list = shownPoppersByTheme[theme];\n if (!list) {\n list = shownPoppersByTheme[theme] = [];\n }\n return list;\n}\nlet Element$1 = function() {\n};\nif (typeof window !== \"undefined\") {\n Element$1 = window.Element;\n}\nfunction defaultPropFactory(prop) {\n return function() {\n const props = this.$props;\n return getDefaultConfig(props.theme, prop);\n };\n}\nconst PROVIDE_KEY = \"__floating-vue__popper\";\nvar PrivatePopper = () => ({\n name: \"VPopper\",\n props: {\n theme: {\n type: String,\n required: true\n },\n targetNodes: {\n type: Function,\n required: true\n },\n referenceNode: {\n type: Function,\n required: true\n },\n popperNode: {\n type: Function,\n required: true\n },\n shown: {\n type: Boolean,\n default: false\n },\n showGroup: {\n type: String,\n default: null\n },\n ariaId: {\n default: null\n },\n disabled: {\n type: Boolean,\n default: defaultPropFactory(\"disabled\")\n },\n positioningDisabled: {\n type: Boolean,\n default: defaultPropFactory(\"positioningDisabled\")\n },\n placement: {\n type: String,\n default: defaultPropFactory(\"placement\"),\n validator: (value) => placements.includes(value)\n },\n delay: {\n type: [String, Number, Object],\n default: defaultPropFactory(\"delay\")\n },\n distance: {\n type: [Number, String],\n default: defaultPropFactory(\"distance\")\n },\n skidding: {\n type: [Number, String],\n default: defaultPropFactory(\"skidding\")\n },\n triggers: {\n type: Array,\n default: defaultPropFactory(\"triggers\")\n },\n showTriggers: {\n type: [Array, Function],\n default: defaultPropFactory(\"showTriggers\")\n },\n hideTriggers: {\n type: [Array, Function],\n default: defaultPropFactory(\"hideTriggers\")\n },\n popperTriggers: {\n type: Array,\n default: defaultPropFactory(\"popperTriggers\")\n },\n popperShowTriggers: {\n type: [Array, Function],\n default: defaultPropFactory(\"popperShowTriggers\")\n },\n popperHideTriggers: {\n type: [Array, Function],\n default: defaultPropFactory(\"popperHideTriggers\")\n },\n container: {\n type: [String, Object, Element$1, Boolean],\n default: defaultPropFactory(\"container\")\n },\n boundary: {\n type: [String, Element$1],\n default: defaultPropFactory(\"boundary\")\n },\n strategy: {\n type: String,\n validator: (value) => [\"absolute\", \"fixed\"].includes(value),\n default: defaultPropFactory(\"strategy\")\n },\n autoHide: {\n type: [Boolean, Function],\n default: defaultPropFactory(\"autoHide\")\n },\n handleResize: {\n type: Boolean,\n default: defaultPropFactory(\"handleResize\")\n },\n instantMove: {\n type: Boolean,\n default: defaultPropFactory(\"instantMove\")\n },\n eagerMount: {\n type: Boolean,\n default: defaultPropFactory(\"eagerMount\")\n },\n popperClass: {\n type: [String, Array, Object],\n default: defaultPropFactory(\"popperClass\")\n },\n computeTransformOrigin: {\n type: Boolean,\n default: defaultPropFactory(\"computeTransformOrigin\")\n },\n autoMinSize: {\n type: Boolean,\n default: defaultPropFactory(\"autoMinSize\")\n },\n autoSize: {\n type: [Boolean, String],\n default: defaultPropFactory(\"autoSize\")\n },\n autoMaxSize: {\n type: Boolean,\n default: defaultPropFactory(\"autoMaxSize\")\n },\n autoBoundaryMaxSize: {\n type: Boolean,\n default: defaultPropFactory(\"autoBoundaryMaxSize\")\n },\n preventOverflow: {\n type: Boolean,\n default: defaultPropFactory(\"preventOverflow\")\n },\n overflowPadding: {\n type: [Number, String],\n default: defaultPropFactory(\"overflowPadding\")\n },\n arrowPadding: {\n type: [Number, String],\n default: defaultPropFactory(\"arrowPadding\")\n },\n arrowOverflow: {\n type: Boolean,\n default: defaultPropFactory(\"arrowOverflow\")\n },\n flip: {\n type: Boolean,\n default: defaultPropFactory(\"flip\")\n },\n shift: {\n type: Boolean,\n default: defaultPropFactory(\"shift\")\n },\n shiftCrossAxis: {\n type: Boolean,\n default: defaultPropFactory(\"shiftCrossAxis\")\n }\n },\n provide() {\n return {\n [PROVIDE_KEY]: {\n parentPopper: this\n }\n };\n },\n inject: {\n [PROVIDE_KEY]: { default: null }\n },\n data() {\n return {\n isShown: false,\n isMounted: false,\n skipTransition: false,\n classes: {\n showFrom: false,\n showTo: false,\n hideFrom: false,\n hideTo: true\n },\n result: {\n x: 0,\n y: 0,\n placement: \"\",\n strategy: this.strategy,\n arrow: {\n x: 0,\n y: 0,\n centerOffset: 0\n },\n transformOrigin: null\n },\n shownChildren: /* @__PURE__ */ new Set(),\n lastAutoHide: true\n };\n },\n computed: {\n popperId() {\n return this.ariaId != null ? this.ariaId : this.randomId;\n },\n shouldMountContent() {\n return this.eagerMount || this.isMounted;\n },\n slotData() {\n return {\n popperId: this.popperId,\n isShown: this.isShown,\n shouldMountContent: this.shouldMountContent,\n skipTransition: this.skipTransition,\n autoHide: typeof this.autoHide === \"function\" ? this.lastAutoHide : this.autoHide,\n show: this.show,\n hide: this.hide,\n handleResize: this.handleResize,\n onResize: this.onResize,\n classes: __spreadProps(__spreadValues({}, this.classes), {\n popperClass: this.popperClass\n }),\n result: this.positioningDisabled ? null : this.result\n };\n },\n parentPopper() {\n var _a;\n return (_a = this[PROVIDE_KEY]) == null ? void 0 : _a.parentPopper;\n },\n hasPopperShowTriggerHover() {\n var _a, _b;\n return ((_a = this.popperTriggers) == null ? void 0 : _a.includes(\"hover\")) || ((_b = this.popperShowTriggers) == null ? void 0 : _b.includes(\"hover\"));\n }\n },\n watch: __spreadValues(__spreadValues({\n shown: \"$_autoShowHide\",\n disabled(value) {\n if (value) {\n this.dispose();\n } else {\n this.init();\n }\n },\n async container() {\n if (this.isShown) {\n this.$_ensureTeleport();\n await this.$_computePosition();\n }\n }\n }, [\n \"triggers\",\n \"positioningDisabled\"\n ].reduce((acc, prop) => {\n acc[prop] = \"$_refreshListeners\";\n return acc;\n }, {})), [\n \"placement\",\n \"distance\",\n \"skidding\",\n \"boundary\",\n \"strategy\",\n \"overflowPadding\",\n \"arrowPadding\",\n \"preventOverflow\",\n \"shift\",\n \"shiftCrossAxis\",\n \"flip\"\n ].reduce((acc, prop) => {\n acc[prop] = \"$_computePosition\";\n return acc;\n }, {})),\n created() {\n this.$_isDisposed = true;\n this.randomId = `popper_${[Math.random(), Date.now()].map((n) => n.toString(36).substring(2, 10)).join(\"_\")}`;\n if (this.autoMinSize) {\n console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize=\"min\"` instead.');\n }\n if (this.autoMaxSize) {\n console.warn(\"[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.\");\n }\n },\n mounted() {\n this.init();\n this.$_detachPopperNode();\n },\n activated() {\n this.$_autoShowHide();\n },\n deactivated() {\n this.hide();\n },\n beforeDestroy() {\n this.dispose();\n },\n methods: {\n show({ event = null, skipDelay = false, force = false } = {}) {\n var _a, _b;\n if (((_a = this.parentPopper) == null ? void 0 : _a.lockedChild) && this.parentPopper.lockedChild !== this)\n return;\n this.$_pendingHide = false;\n if (force || !this.disabled) {\n if (((_b = this.parentPopper) == null ? void 0 : _b.lockedChild) === this) {\n this.parentPopper.lockedChild = null;\n }\n this.$_scheduleShow(event, skipDelay);\n this.$emit(\"show\");\n this.$_showFrameLocked = true;\n requestAnimationFrame(() => {\n this.$_showFrameLocked = false;\n });\n }\n this.$emit(\"update:shown\", true);\n },\n hide({ event = null, skipDelay = false, skipAiming = false } = {}) {\n var _a;\n if (this.$_hideInProgress)\n return;\n if (this.shownChildren.size > 0) {\n this.$_pendingHide = true;\n return;\n }\n if (!skipAiming && this.hasPopperShowTriggerHover && this.$_isAimingPopper()) {\n if (this.parentPopper) {\n this.parentPopper.lockedChild = this;\n clearTimeout(this.parentPopper.lockedChildTimer);\n this.parentPopper.lockedChildTimer = setTimeout(() => {\n if (this.parentPopper.lockedChild === this) {\n this.parentPopper.lockedChild.hide({ skipDelay });\n this.parentPopper.lockedChild = null;\n }\n }, 1e3);\n }\n return;\n }\n if (((_a = this.parentPopper) == null ? void 0 : _a.lockedChild) === this) {\n this.parentPopper.lockedChild = null;\n }\n this.$_pendingHide = false;\n this.$_scheduleHide(event, skipDelay);\n this.$emit(\"hide\");\n this.$emit(\"update:shown\", false);\n },\n init() {\n if (!this.$_isDisposed)\n return;\n this.$_isDisposed = false;\n this.isMounted = false;\n this.$_events = [];\n this.$_preventShow = false;\n this.$_referenceNode = this.referenceNode();\n this.$_targetNodes = this.targetNodes().filter((e) => e.nodeType === e.ELEMENT_NODE);\n this.$_popperNode = this.popperNode();\n this.$_innerNode = this.$_popperNode.querySelector(\".v-popper__inner\");\n this.$_arrowNode = this.$_popperNode.querySelector(\".v-popper__arrow-container\");\n this.$_swapTargetAttrs(\"title\", \"data-original-title\");\n this.$_detachPopperNode();\n if (this.triggers.length) {\n this.$_addEventListeners();\n }\n if (this.shown) {\n this.show();\n }\n },\n dispose() {\n if (this.$_isDisposed)\n return;\n this.$_isDisposed = true;\n this.$_removeEventListeners();\n this.hide({ skipDelay: true });\n this.$_detachPopperNode();\n this.isMounted = false;\n this.isShown = false;\n this.$_updateParentShownChildren(false);\n this.$_swapTargetAttrs(\"data-original-title\", \"title\");\n this.$emit(\"dispose\");\n },\n async onResize() {\n if (this.isShown) {\n await this.$_computePosition();\n this.$emit(\"resize\");\n }\n },\n async $_computePosition() {\n var _a;\n if (this.$_isDisposed || this.positioningDisabled)\n return;\n const options2 = {\n strategy: this.strategy,\n middleware: []\n };\n if (this.distance || this.skidding) {\n options2.middleware.push(offset({\n mainAxis: this.distance,\n crossAxis: this.skidding\n }));\n }\n const isPlacementAuto = this.placement.startsWith(\"auto\");\n if (isPlacementAuto) {\n options2.middleware.push(autoPlacement({\n alignment: (_a = this.placement.split(\"-\")[1]) != null ? _a : \"\"\n }));\n } else {\n options2.placement = this.placement;\n }\n if (this.preventOverflow) {\n if (this.shift) {\n options2.middleware.push(shift({\n padding: this.overflowPadding,\n boundary: this.boundary,\n crossAxis: this.shiftCrossAxis\n }));\n }\n if (!isPlacementAuto && this.flip) {\n options2.middleware.push(flip({\n padding: this.overflowPadding,\n boundary: this.boundary\n }));\n }\n }\n options2.middleware.push(arrow({\n element: this.$_arrowNode,\n padding: this.arrowPadding\n }));\n if (this.arrowOverflow) {\n options2.middleware.push({\n name: \"arrowOverflow\",\n fn: ({ placement, rects, middlewareData }) => {\n let overflow;\n const { centerOffset } = middlewareData.arrow;\n if (placement.startsWith(\"top\") || placement.startsWith(\"bottom\")) {\n overflow = Math.abs(centerOffset) > rects.reference.width / 2;\n } else {\n overflow = Math.abs(centerOffset) > rects.reference.height / 2;\n }\n return {\n data: {\n overflow\n }\n };\n }\n });\n }\n if (this.autoMinSize || this.autoSize) {\n const autoSize = this.autoSize ? this.autoSize : this.autoMinSize ? \"min\" : null;\n options2.middleware.push({\n name: \"autoSize\",\n fn: ({ rects, placement, middlewareData }) => {\n var _a2;\n if ((_a2 = middlewareData.autoSize) == null ? void 0 : _a2.skip) {\n return {};\n }\n let width;\n let height;\n if (placement.startsWith(\"top\") || placement.startsWith(\"bottom\")) {\n width = rects.reference.width;\n } else {\n height = rects.reference.height;\n }\n this.$_innerNode.style[autoSize === \"min\" ? \"minWidth\" : autoSize === \"max\" ? \"maxWidth\" : \"width\"] = width != null ? `${width}px` : null;\n this.$_innerNode.style[autoSize === \"min\" ? \"minHeight\" : autoSize === \"max\" ? \"maxHeight\" : \"height\"] = height != null ? `${height}px` : null;\n return {\n data: {\n skip: true\n },\n reset: {\n rects: true\n }\n };\n }\n });\n }\n if (this.autoMaxSize || this.autoBoundaryMaxSize) {\n this.$_innerNode.style.maxWidth = null;\n this.$_innerNode.style.maxHeight = null;\n options2.middleware.push(size({\n boundary: this.boundary,\n padding: this.overflowPadding,\n apply: ({ width, height }) => {\n this.$_innerNode.style.maxWidth = width != null ? `${width}px` : null;\n this.$_innerNode.style.maxHeight = height != null ? `${height}px` : null;\n }\n }));\n }\n const data = await computePosition(this.$_referenceNode, this.$_popperNode, options2);\n Object.assign(this.result, {\n x: data.x,\n y: data.y,\n placement: data.placement,\n strategy: data.strategy,\n arrow: __spreadValues(__spreadValues({}, data.middlewareData.arrow), data.middlewareData.arrowOverflow)\n });\n },\n $_scheduleShow(event = null, skipDelay = false) {\n this.$_updateParentShownChildren(true);\n this.$_hideInProgress = false;\n clearTimeout(this.$_scheduleTimer);\n if (hidingPopper && this.instantMove && hidingPopper.instantMove && hidingPopper !== this.parentPopper) {\n hidingPopper.$_applyHide(true);\n this.$_applyShow(true);\n return;\n }\n if (skipDelay) {\n this.$_applyShow();\n } else {\n this.$_scheduleTimer = setTimeout(this.$_applyShow.bind(this), this.$_computeDelay(\"show\"));\n }\n },\n $_scheduleHide(event = null, skipDelay = false) {\n if (this.shownChildren.size > 0) {\n this.$_pendingHide = true;\n return;\n }\n this.$_updateParentShownChildren(false);\n this.$_hideInProgress = true;\n clearTimeout(this.$_scheduleTimer);\n if (this.isShown) {\n hidingPopper = this;\n }\n if (skipDelay) {\n this.$_applyHide();\n } else {\n this.$_scheduleTimer = setTimeout(this.$_applyHide.bind(this), this.$_computeDelay(\"hide\"));\n }\n },\n $_computeDelay(type) {\n const delay = this.delay;\n return parseInt(delay && delay[type] || delay || 0);\n },\n async $_applyShow(skipTransition = false) {\n clearTimeout(this.$_disposeTimer);\n clearTimeout(this.$_scheduleTimer);\n this.skipTransition = skipTransition;\n if (this.isShown) {\n return;\n }\n this.$_ensureTeleport();\n await nextFrame();\n await this.$_computePosition();\n await this.$_applyShowEffect();\n if (!this.positioningDisabled) {\n this.$_registerEventListeners([\n ...getScrollParents(this.$_referenceNode),\n ...getScrollParents(this.$_popperNode)\n ], \"scroll\", () => {\n this.$_computePosition();\n });\n }\n },\n async $_applyShowEffect() {\n if (this.$_hideInProgress)\n return;\n if (this.computeTransformOrigin) {\n const bounds = this.$_referenceNode.getBoundingClientRect();\n const popperWrapper = this.$_popperNode.querySelector(\".v-popper__wrapper\");\n const parentBounds = popperWrapper.parentNode.getBoundingClientRect();\n const x = bounds.x + bounds.width / 2 - (parentBounds.left + popperWrapper.offsetLeft);\n const y = bounds.y + bounds.height / 2 - (parentBounds.top + popperWrapper.offsetTop);\n this.result.transformOrigin = `${x}px ${y}px`;\n }\n this.isShown = true;\n this.$_applyAttrsToTarget({\n \"aria-describedby\": this.popperId,\n \"data-popper-shown\": \"\"\n });\n const showGroup = this.showGroup;\n if (showGroup) {\n let popover;\n for (let i = 0; i < shownPoppers.length; i++) {\n popover = shownPoppers[i];\n if (popover.showGroup !== showGroup) {\n popover.hide();\n popover.$emit(\"close-group\");\n }\n }\n }\n shownPoppers.push(this);\n document.body.classList.add(\"v-popper--some-open\");\n for (const theme of getAllParentThemes(this.theme)) {\n getShownPoppersByTheme(theme).push(this);\n document.body.classList.add(`v-popper--some-open--${theme}`);\n }\n this.$emit(\"apply-show\");\n this.classes.showFrom = true;\n this.classes.showTo = false;\n this.classes.hideFrom = false;\n this.classes.hideTo = false;\n await nextFrame();\n this.classes.showFrom = false;\n this.classes.showTo = true;\n this.$_popperNode.focus();\n },\n async $_applyHide(skipTransition = false) {\n if (this.shownChildren.size > 0) {\n this.$_pendingHide = true;\n this.$_hideInProgress = false;\n return;\n }\n clearTimeout(this.$_scheduleTimer);\n if (!this.isShown) {\n return;\n }\n this.skipTransition = skipTransition;\n removeFromArray(shownPoppers, this);\n if (shownPoppers.length === 0) {\n document.body.classList.remove(\"v-popper--some-open\");\n }\n for (const theme of getAllParentThemes(this.theme)) {\n const list = getShownPoppersByTheme(theme);\n removeFromArray(list, this);\n if (list.length === 0) {\n document.body.classList.remove(`v-popper--some-open--${theme}`);\n }\n }\n if (hidingPopper === this) {\n hidingPopper = null;\n }\n this.isShown = false;\n this.$_applyAttrsToTarget({\n \"aria-describedby\": void 0,\n \"data-popper-shown\": void 0\n });\n clearTimeout(this.$_disposeTimer);\n const disposeTime = getDefaultConfig(this.theme, \"disposeTimeout\");\n if (disposeTime !== null) {\n this.$_disposeTimer = setTimeout(() => {\n if (this.$_popperNode) {\n this.$_detachPopperNode();\n this.isMounted = false;\n }\n }, disposeTime);\n }\n this.$_removeEventListeners(\"scroll\");\n this.$emit(\"apply-hide\");\n this.classes.showFrom = false;\n this.classes.showTo = false;\n this.classes.hideFrom = true;\n this.classes.hideTo = false;\n await nextFrame();\n this.classes.hideFrom = false;\n this.classes.hideTo = true;\n },\n $_autoShowHide() {\n if (this.shown) {\n this.show();\n } else {\n this.hide();\n }\n },\n $_ensureTeleport() {\n if (this.$_isDisposed)\n return;\n let container = this.container;\n if (typeof container === \"string\") {\n container = window.document.querySelector(container);\n } else if (container === false) {\n container = this.$_targetNodes[0].parentNode;\n }\n if (!container) {\n throw new Error(\"No container for popover: \" + this.container);\n }\n container.appendChild(this.$_popperNode);\n this.isMounted = true;\n },\n $_addEventListeners() {\n const handleShow = (event) => {\n if (this.isShown && !this.$_hideInProgress) {\n return;\n }\n event.usedByTooltip = true;\n !this.$_preventShow && this.show({ event });\n };\n this.$_registerTriggerListeners(this.$_targetNodes, SHOW_EVENT_MAP, this.triggers, this.showTriggers, handleShow);\n this.$_registerTriggerListeners([this.$_popperNode], SHOW_EVENT_MAP, this.popperTriggers, this.popperShowTriggers, handleShow);\n const handleHide = (skipAiming) => (event) => {\n if (event.usedByTooltip) {\n return;\n }\n this.hide({ event, skipAiming });\n };\n this.$_registerTriggerListeners(this.$_targetNodes, HIDE_EVENT_MAP, this.triggers, this.hideTriggers, handleHide(false));\n this.$_registerTriggerListeners([this.$_popperNode], HIDE_EVENT_MAP, this.popperTriggers, this.popperHideTriggers, handleHide(true));\n },\n $_registerEventListeners(targetNodes, eventType, handler) {\n this.$_events.push({ targetNodes, eventType, handler });\n targetNodes.forEach((node) => node.addEventListener(eventType, handler, supportsPassive ? {\n passive: true\n } : void 0));\n },\n $_registerTriggerListeners(targetNodes, eventMap, commonTriggers, customTrigger, handler) {\n let triggers = commonTriggers;\n if (customTrigger != null) {\n triggers = typeof customTrigger === \"function\" ? customTrigger(triggers) : customTrigger;\n }\n triggers.forEach((trigger) => {\n const eventType = eventMap[trigger];\n if (eventType) {\n this.$_registerEventListeners(targetNodes, eventType, handler);\n }\n });\n },\n $_removeEventListeners(filterEventType) {\n const newList = [];\n this.$_events.forEach((listener) => {\n const { targetNodes, eventType, handler } = listener;\n if (!filterEventType || filterEventType === eventType) {\n targetNodes.forEach((node) => node.removeEventListener(eventType, handler));\n } else {\n newList.push(listener);\n }\n });\n this.$_events = newList;\n },\n $_refreshListeners() {\n if (!this.$_isDisposed) {\n this.$_removeEventListeners();\n this.$_addEventListeners();\n }\n },\n $_handleGlobalClose(event, touch = false) {\n if (this.$_showFrameLocked)\n return;\n this.hide({ event });\n if (event.closePopover) {\n this.$emit(\"close-directive\");\n } else {\n this.$emit(\"auto-hide\");\n }\n if (touch) {\n this.$_preventShow = true;\n setTimeout(() => {\n this.$_preventShow = false;\n }, 300);\n }\n },\n $_detachPopperNode() {\n this.$_popperNode.parentNode && this.$_popperNode.parentNode.removeChild(this.$_popperNode);\n },\n $_swapTargetAttrs(attrFrom, attrTo) {\n for (const el of this.$_targetNodes) {\n const value = el.getAttribute(attrFrom);\n if (value) {\n el.removeAttribute(attrFrom);\n el.setAttribute(attrTo, value);\n }\n }\n },\n $_applyAttrsToTarget(attrs) {\n for (const el of this.$_targetNodes) {\n for (const n in attrs) {\n const value = attrs[n];\n if (value == null) {\n el.removeAttribute(n);\n } else {\n el.setAttribute(n, value);\n }\n }\n }\n },\n $_updateParentShownChildren(value) {\n let parent = this.parentPopper;\n while (parent) {\n if (value) {\n parent.shownChildren.add(this.randomId);\n } else {\n parent.shownChildren.delete(this.randomId);\n if (parent.$_pendingHide) {\n parent.hide();\n }\n }\n parent = parent.parentPopper;\n }\n },\n $_isAimingPopper() {\n const referenceBounds = this.$el.getBoundingClientRect();\n if (mouseX >= referenceBounds.left && mouseX <= referenceBounds.right && mouseY >= referenceBounds.top && mouseY <= referenceBounds.bottom) {\n const popperBounds = this.$_popperNode.getBoundingClientRect();\n const vectorX = mouseX - mousePreviousX;\n const vectorY = mouseY - mousePreviousY;\n const distance = popperBounds.left + popperBounds.width / 2 - mousePreviousX + (popperBounds.top + popperBounds.height / 2) - mousePreviousY;\n const newVectorLength = distance + popperBounds.width + popperBounds.height;\n const edgeX = mousePreviousX + vectorX * newVectorLength;\n const edgeY = mousePreviousY + vectorY * newVectorLength;\n return lineIntersectsLine(mousePreviousX, mousePreviousY, edgeX, edgeY, popperBounds.left, popperBounds.top, popperBounds.left, popperBounds.bottom) || lineIntersectsLine(mousePreviousX, mousePreviousY, edgeX, edgeY, popperBounds.left, popperBounds.top, popperBounds.right, popperBounds.top) || lineIntersectsLine(mousePreviousX, mousePreviousY, edgeX, edgeY, popperBounds.right, popperBounds.top, popperBounds.right, popperBounds.bottom) || lineIntersectsLine(mousePreviousX, mousePreviousY, edgeX, edgeY, popperBounds.left, popperBounds.bottom, popperBounds.right, popperBounds.bottom);\n }\n return false;\n }\n },\n render() {\n return this.$scopedSlots.default(this.slotData)[0];\n }\n});\nif (typeof document !== \"undefined\" && typeof window !== \"undefined\") {\n if (isIOS) {\n document.addEventListener(\"touchstart\", handleGlobalMousedown, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n document.addEventListener(\"touchend\", handleGlobalTouchend, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n } else {\n window.addEventListener(\"mousedown\", handleGlobalMousedown, true);\n window.addEventListener(\"click\", handleGlobalClick, true);\n }\n window.addEventListener(\"resize\", computePositionAllShownPoppers);\n}\nfunction handleGlobalMousedown(event) {\n for (let i = 0; i < shownPoppers.length; i++) {\n const popper = shownPoppers[i];\n try {\n const popperContent = popper.popperNode();\n popper.$_mouseDownContains = popperContent.contains(event.target);\n } catch (e) {\n }\n }\n}\nfunction handleGlobalClick(event) {\n handleGlobalClose(event);\n}\nfunction handleGlobalTouchend(event) {\n handleGlobalClose(event, true);\n}\nfunction handleGlobalClose(event, touch = false) {\n const preventClose = {};\n for (let i = shownPoppers.length - 1; i >= 0; i--) {\n const popper = shownPoppers[i];\n try {\n const contains = popper.$_containsGlobalTarget = isContainingEventTarget(popper, event);\n popper.$_pendingHide = false;\n requestAnimationFrame(() => {\n popper.$_pendingHide = false;\n if (preventClose[popper.randomId])\n return;\n if (shouldAutoHide(popper, contains, event)) {\n popper.$_handleGlobalClose(event, touch);\n if (!event.closeAllPopover && event.closePopover && contains) {\n let parent2 = popper.parentPopper;\n while (parent2) {\n preventClose[parent2.randomId] = true;\n parent2 = parent2.parentPopper;\n }\n return;\n }\n let parent = popper.parentPopper;\n while (parent) {\n if (shouldAutoHide(parent, parent.$_containsGlobalTarget, event)) {\n parent.$_handleGlobalClose(event, touch);\n } else {\n break;\n }\n parent = parent.parentPopper;\n }\n }\n });\n } catch (e) {\n }\n }\n}\nfunction isContainingEventTarget(popper, event) {\n const popperContent = popper.popperNode();\n return popper.$_mouseDownContains || popperContent.contains(event.target);\n}\nfunction shouldAutoHide(popper, contains, event) {\n return event.closeAllPopover || event.closePopover && contains || getAutoHideResult(popper, event) && !contains;\n}\nfunction getAutoHideResult(popper, event) {\n if (typeof popper.autoHide === \"function\") {\n const result = popper.autoHide(event);\n popper.lastAutoHide = result;\n return result;\n }\n return popper.autoHide;\n}\nfunction computePositionAllShownPoppers(event) {\n for (let i = 0; i < shownPoppers.length; i++) {\n const popper = shownPoppers[i];\n popper.$_computePosition(event);\n }\n}\nfunction hideAllPoppers() {\n for (let i = 0; i < shownPoppers.length; i++) {\n const popper = shownPoppers[i];\n popper.hide();\n }\n}\nlet mousePreviousX = 0;\nlet mousePreviousY = 0;\nlet mouseX = 0;\nlet mouseY = 0;\nif (typeof window !== \"undefined\") {\n window.addEventListener(\"mousemove\", (event) => {\n mousePreviousX = mouseX;\n mousePreviousY = mouseY;\n mouseX = event.clientX;\n mouseY = event.clientY;\n }, supportsPassive ? {\n passive: true\n } : void 0);\n}\nfunction lineIntersectsLine(x1, y1, x2, y2, x3, y3, x4, y4) {\n const uA = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / ((y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1));\n const uB = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / ((y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1));\n return uA >= 0 && uA <= 1 && uB >= 0 && uB <= 1;\n}\nfunction getInternetExplorerVersion() {\n var ua = window.navigator.userAgent;\n var msie = ua.indexOf(\"MSIE \");\n if (msie > 0) {\n return parseInt(ua.substring(msie + 5, ua.indexOf(\".\", msie)), 10);\n }\n var trident = ua.indexOf(\"Trident/\");\n if (trident > 0) {\n var rv = ua.indexOf(\"rv:\");\n return parseInt(ua.substring(rv + 3, ua.indexOf(\".\", rv)), 10);\n }\n var edge = ua.indexOf(\"Edge/\");\n if (edge > 0) {\n return parseInt(ua.substring(edge + 5, ua.indexOf(\".\", edge)), 10);\n }\n return -1;\n}\nvar isIE;\nfunction initCompat() {\n if (!initCompat.init) {\n initCompat.init = true;\n isIE = getInternetExplorerVersion() !== -1;\n }\n}\nvar script = {\n name: \"ResizeObserver\",\n props: {\n emitOnMount: {\n type: Boolean,\n default: false\n },\n ignoreWidth: {\n type: Boolean,\n default: false\n },\n ignoreHeight: {\n type: Boolean,\n default: false\n }\n },\n mounted: function mounted() {\n var _this = this;\n initCompat();\n this.$nextTick(function() {\n _this._w = _this.$el.offsetWidth;\n _this._h = _this.$el.offsetHeight;\n if (_this.emitOnMount) {\n _this.emitSize();\n }\n });\n var object = document.createElement(\"object\");\n this._resizeObject = object;\n object.setAttribute(\"aria-hidden\", \"true\");\n object.setAttribute(\"tabindex\", -1);\n object.onload = this.addResizeHandlers;\n object.type = \"text/html\";\n if (isIE) {\n this.$el.appendChild(object);\n }\n object.data = \"about:blank\";\n if (!isIE) {\n this.$el.appendChild(object);\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.removeResizeHandlers();\n },\n methods: {\n compareAndNotify: function compareAndNotify() {\n if (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) {\n this._w = this.$el.offsetWidth;\n this._h = this.$el.offsetHeight;\n this.emitSize();\n }\n },\n emitSize: function emitSize() {\n this.$emit(\"notify\", {\n width: this._w,\n height: this._h\n });\n },\n addResizeHandlers: function addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener(\"resize\", this.compareAndNotify);\n this.compareAndNotify();\n },\n removeResizeHandlers: function removeResizeHandlers() {\n if (this._resizeObject && this._resizeObject.onload) {\n if (!isIE && this._resizeObject.contentDocument) {\n this._resizeObject.contentDocument.defaultView.removeEventListener(\"resize\", this.compareAndNotify);\n }\n this.$el.removeChild(this._resizeObject);\n this._resizeObject.onload = null;\n this._resizeObject = null;\n }\n }\n }\n};\nfunction normalizeComponent$1(template, style, script2, scopeId, isFunctionalTemplate, moduleIdentifier, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== \"boolean\") {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n }\n var options2 = typeof script2 === \"function\" ? script2.options : script2;\n if (template && template.render) {\n options2.render = template.render;\n options2.staticRenderFns = template.staticRenderFns;\n options2._compiled = true;\n if (isFunctionalTemplate) {\n options2.functional = true;\n }\n }\n if (scopeId) {\n options2._scopeId = scopeId;\n }\n var hook;\n if (moduleIdentifier) {\n hook = function hook2(context) {\n context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;\n if (!context && typeof __VUE_SSR_CONTEXT__ !== \"undefined\") {\n context = __VUE_SSR_CONTEXT__;\n }\n if (style) {\n style.call(this, createInjectorSSR(context));\n }\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n };\n options2._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function(context) {\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\n } : function(context) {\n style.call(this, createInjector(context));\n };\n }\n if (hook) {\n if (options2.functional) {\n var originalRender = options2.render;\n options2.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n var existing = options2.beforeCreate;\n options2.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n return script2;\n}\nvar __vue_script__ = script;\nvar __vue_render__ = function __vue_render__2() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"div\", {\n staticClass: \"resize-observer\",\n attrs: {\n tabindex: \"-1\"\n }\n });\n};\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\nvar __vue_inject_styles__ = void 0;\nvar __vue_scope_id__ = \"data-v-8859cc6c\";\nvar __vue_module_identifier__ = void 0;\nvar __vue_is_functional_template__ = false;\nvar __vue_component__ = /* @__PURE__ */ normalizeComponent$1({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, void 0, void 0, void 0);\nfunction install$1(Vue2) {\n Vue2.component(\"resize-observer\", __vue_component__);\n Vue2.component(\"ResizeObserver\", __vue_component__);\n}\nvar plugin$1 = {\n version: \"1.0.1\",\n install: install$1\n};\nvar GlobalVue$1 = null;\nif (typeof window !== \"undefined\") {\n GlobalVue$1 = window.Vue;\n} else if (typeof global !== \"undefined\") {\n GlobalVue$1 = global.Vue;\n}\nif (GlobalVue$1) {\n GlobalVue$1.use(plugin$1);\n}\nvar PrivateThemeClass = {\n computed: {\n themeClass() {\n return getThemeClasses(this.theme);\n }\n }\n};\nvar __vue2_script$5 = {\n name: \"VPopperContent\",\n components: {\n ResizeObserver: __vue_component__\n },\n mixins: [\n PrivateThemeClass\n ],\n props: {\n popperId: String,\n theme: String,\n shown: Boolean,\n mounted: Boolean,\n skipTransition: Boolean,\n autoHide: Boolean,\n handleResize: Boolean,\n classes: Object,\n result: Object\n },\n methods: {\n toPx(value) {\n if (value != null && !isNaN(value)) {\n return `${value}px`;\n }\n return null;\n }\n }\n};\nvar render$2 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"div\", { ref: \"popover\", staticClass: \"v-popper__popper\", class: [\n _vm.themeClass,\n _vm.classes.popperClass,\n {\n \"v-popper__popper--shown\": _vm.shown,\n \"v-popper__popper--hidden\": !_vm.shown,\n \"v-popper__popper--show-from\": _vm.classes.showFrom,\n \"v-popper__popper--show-to\": _vm.classes.showTo,\n \"v-popper__popper--hide-from\": _vm.classes.hideFrom,\n \"v-popper__popper--hide-to\": _vm.classes.hideTo,\n \"v-popper__popper--skip-transition\": _vm.skipTransition,\n \"v-popper__popper--arrow-overflow\": _vm.result && _vm.result.arrow.overflow,\n \"v-popper__popper--no-positioning\": !_vm.result\n }\n ], style: _vm.result ? {\n position: _vm.result.strategy,\n transform: \"translate3d(\" + Math.round(_vm.result.x) + \"px,\" + Math.round(_vm.result.y) + \"px,0)\"\n } : void 0, attrs: { \"id\": _vm.popperId, \"aria-hidden\": _vm.shown ? \"false\" : \"true\", \"tabindex\": _vm.autoHide ? 0 : void 0, \"data-popper-placement\": _vm.result ? _vm.result.placement : void 0 }, on: { \"keyup\": function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) {\n return null;\n }\n _vm.autoHide && _vm.$emit(\"hide\");\n } } }, [_c(\"div\", { staticClass: \"v-popper__backdrop\", on: { \"click\": function($event) {\n _vm.autoHide && _vm.$emit(\"hide\");\n } } }), _c(\"div\", { staticClass: \"v-popper__wrapper\", style: _vm.result ? {\n transformOrigin: _vm.result.transformOrigin\n } : void 0 }, [_c(\"div\", { ref: \"inner\", staticClass: \"v-popper__inner\" }, [_vm.mounted ? [_c(\"div\", [_vm._t(\"default\")], 2), _vm.handleResize ? _c(\"ResizeObserver\", { on: { \"notify\": function($event) {\n return _vm.$emit(\"resize\", $event);\n } } }) : _vm._e()] : _vm._e()], 2), _c(\"div\", { ref: \"arrow\", staticClass: \"v-popper__arrow-container\", style: _vm.result ? {\n left: _vm.toPx(_vm.result.arrow.x),\n top: _vm.toPx(_vm.result.arrow.y)\n } : void 0 }, [_c(\"div\", { staticClass: \"v-popper__arrow-outer\" }), _c(\"div\", { staticClass: \"v-popper__arrow-inner\" })])])]);\n};\nvar staticRenderFns$2 = [];\nfunction normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options2 = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render2) {\n options2.render = render2;\n options2.staticRenderFns = staticRenderFns2;\n options2._compiled = true;\n }\n if (functionalTemplate) {\n options2.functional = true;\n }\n if (scopeId) {\n options2._scopeId = \"data-v-\" + scopeId;\n }\n var hook;\n if (moduleIdentifier) {\n hook = function(context) {\n context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;\n if (!context && typeof __VUE_SSR_CONTEXT__ !== \"undefined\") {\n context = __VUE_SSR_CONTEXT__;\n }\n if (injectStyles) {\n injectStyles.call(this, context);\n }\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n };\n options2._ssrRegister = hook;\n } else if (injectStyles) {\n hook = shadowMode ? function() {\n injectStyles.call(this, (options2.functional ? this.parent : this).$root.$options.shadowRoot);\n } : injectStyles;\n }\n if (hook) {\n if (options2.functional) {\n options2._injectStyles = hook;\n var originalRender = options2.render;\n options2.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n var existing = options2.beforeCreate;\n options2.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n return {\n exports: scriptExports,\n options: options2\n };\n}\nconst __cssModules$5 = {};\nvar __component__$5 = /* @__PURE__ */ normalizeComponent(__vue2_script$5, render$2, staticRenderFns$2, false, __vue2_injectStyles$5, null, null, null);\nfunction __vue2_injectStyles$5(context) {\n for (let o in __cssModules$5) {\n this[o] = __cssModules$5[o];\n }\n}\nvar PrivatePopperContent = /* @__PURE__ */ function() {\n return __component__$5.exports;\n}();\nvar PrivatePopperMethods = {\n methods: {\n show(...args) {\n return this.$refs.popper.show(...args);\n },\n hide(...args) {\n return this.$refs.popper.hide(...args);\n },\n dispose(...args) {\n return this.$refs.popper.dispose(...args);\n },\n onResize(...args) {\n return this.$refs.popper.onResize(...args);\n }\n }\n};\nvar __vue2_script$4 = {\n name: \"VPopperWrapper\",\n components: {\n Popper: PrivatePopper(),\n PopperContent: PrivatePopperContent\n },\n mixins: [\n PrivatePopperMethods,\n PrivateThemeClass\n ],\n inheritAttrs: false,\n props: {\n theme: {\n type: String,\n default() {\n return this.$options.vPopperTheme;\n }\n }\n },\n methods: {\n getTargetNodes() {\n return Array.from(this.$refs.reference.children).filter((node) => node !== this.$refs.popperContent.$el);\n }\n }\n};\nvar render$1 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"Popper\", _vm._g(_vm._b({ ref: \"popper\", attrs: { \"theme\": _vm.theme, \"target-nodes\": _vm.getTargetNodes, \"reference-node\": function() {\n return _vm.$refs.reference;\n }, \"popper-node\": function() {\n return _vm.$refs.popperContent.$el;\n } }, scopedSlots: _vm._u([{ key: \"default\", fn: function(ref) {\n var popperId = ref.popperId;\n var isShown = ref.isShown;\n var shouldMountContent = ref.shouldMountContent;\n var skipTransition = ref.skipTransition;\n var autoHide = ref.autoHide;\n var show = ref.show;\n var hide = ref.hide;\n var handleResize = ref.handleResize;\n var onResize = ref.onResize;\n var classes = ref.classes;\n var result = ref.result;\n return [_c(\"div\", { ref: \"reference\", staticClass: \"v-popper\", class: [\n _vm.themeClass,\n {\n \"v-popper--shown\": isShown\n }\n ] }, [_vm._t(\"default\", null, { \"shown\": isShown, \"show\": show, \"hide\": hide }), _c(\"PopperContent\", { ref: \"popperContent\", attrs: { \"popper-id\": popperId, \"theme\": _vm.theme, \"shown\": isShown, \"mounted\": shouldMountContent, \"skip-transition\": skipTransition, \"auto-hide\": autoHide, \"handle-resize\": handleResize, \"classes\": classes, \"result\": result }, on: { \"hide\": hide, \"resize\": onResize } }, [_vm._t(\"popper\", null, { \"shown\": isShown, \"hide\": hide })], 2)], 2)];\n } }], null, true) }, \"Popper\", _vm.$attrs, false), _vm.$listeners));\n};\nvar staticRenderFns$1 = [];\nconst __cssModules$4 = {};\nvar __component__$4 = /* @__PURE__ */ normalizeComponent(__vue2_script$4, render$1, staticRenderFns$1, false, __vue2_injectStyles$4, null, null, null);\nfunction __vue2_injectStyles$4(context) {\n for (let o in __cssModules$4) {\n this[o] = __cssModules$4[o];\n }\n}\nvar PrivatePopperWrapper = /* @__PURE__ */ function() {\n return __component__$4.exports;\n}();\nvar __vue2_script$3 = __spreadProps(__spreadValues({}, PrivatePopperWrapper), {\n name: \"VDropdown\",\n vPopperTheme: \"dropdown\"\n});\nlet __vue2_render$2, __vue2_staticRenderFns$2;\nconst __cssModules$3 = {};\nvar __component__$3 = /* @__PURE__ */ normalizeComponent(__vue2_script$3, __vue2_render$2, __vue2_staticRenderFns$2, false, __vue2_injectStyles$3, null, null, null);\nfunction __vue2_injectStyles$3(context) {\n for (let o in __cssModules$3) {\n this[o] = __cssModules$3[o];\n }\n}\nvar PrivateDropdown = /* @__PURE__ */ function() {\n return __component__$3.exports;\n}();\nvar __vue2_script$2 = __spreadProps(__spreadValues({}, PrivatePopperWrapper), {\n name: \"VMenu\",\n vPopperTheme: \"menu\"\n});\nlet __vue2_render$1, __vue2_staticRenderFns$1;\nconst __cssModules$2 = {};\nvar __component__$2 = /* @__PURE__ */ normalizeComponent(__vue2_script$2, __vue2_render$1, __vue2_staticRenderFns$1, false, __vue2_injectStyles$2, null, null, null);\nfunction __vue2_injectStyles$2(context) {\n for (let o in __cssModules$2) {\n this[o] = __cssModules$2[o];\n }\n}\nvar PrivateMenu = /* @__PURE__ */ function() {\n return __component__$2.exports;\n}();\nvar __vue2_script$1 = __spreadProps(__spreadValues({}, PrivatePopperWrapper), {\n name: \"VTooltip\",\n vPopperTheme: \"tooltip\"\n});\nlet __vue2_render, __vue2_staticRenderFns;\nconst __cssModules$1 = {};\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(__vue2_script$1, __vue2_render, __vue2_staticRenderFns, false, __vue2_injectStyles$1, null, null, null);\nfunction __vue2_injectStyles$1(context) {\n for (let o in __cssModules$1) {\n this[o] = __cssModules$1[o];\n }\n}\nvar PrivateTooltip = /* @__PURE__ */ function() {\n return __component__$1.exports;\n}();\nvar __vue2_script = {\n name: \"VTooltipDirective\",\n components: {\n Popper: PrivatePopper(),\n PopperContent: PrivatePopperContent\n },\n mixins: [\n PrivatePopperMethods\n ],\n inheritAttrs: false,\n props: {\n theme: {\n type: String,\n default: \"tooltip\"\n },\n html: {\n type: Boolean,\n default() {\n return getDefaultConfig(this.theme, \"html\");\n }\n },\n content: {\n type: [String, Number, Function],\n default: null\n },\n loadingContent: {\n type: String,\n default() {\n return getDefaultConfig(this.theme, \"loadingContent\");\n }\n }\n },\n data() {\n return {\n asyncContent: null\n };\n },\n computed: {\n isContentAsync() {\n return typeof this.content === \"function\";\n },\n loading() {\n return this.isContentAsync && this.asyncContent == null;\n },\n finalContent() {\n if (this.isContentAsync) {\n return this.loading ? this.loadingContent : this.asyncContent;\n }\n return this.content;\n }\n },\n watch: {\n content: {\n handler() {\n this.fetchContent(true);\n },\n immediate: true\n },\n async finalContent(value) {\n await this.$nextTick();\n this.$refs.popper.onResize();\n }\n },\n created() {\n this.$_fetchId = 0;\n },\n methods: {\n fetchContent(force) {\n if (typeof this.content === \"function\" && this.$_isShown && (force || !this.$_loading && this.asyncContent == null)) {\n this.asyncContent = null;\n this.$_loading = true;\n const fetchId = ++this.$_fetchId;\n const result = this.content(this);\n if (result.then) {\n result.then((res) => this.onResult(fetchId, res));\n } else {\n this.onResult(fetchId, result);\n }\n }\n },\n onResult(fetchId, result) {\n if (fetchId !== this.$_fetchId)\n return;\n this.$_loading = false;\n this.asyncContent = result;\n },\n onShow() {\n this.$_isShown = true;\n this.fetchContent();\n },\n onHide() {\n this.$_isShown = false;\n }\n }\n};\nvar render = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"Popper\", _vm._g(_vm._b({ ref: \"popper\", attrs: { \"theme\": _vm.theme, \"popper-node\": function() {\n return _vm.$refs.popperContent.$el;\n } }, on: { \"apply-show\": _vm.onShow, \"apply-hide\": _vm.onHide }, scopedSlots: _vm._u([{ key: \"default\", fn: function(ref) {\n var popperId = ref.popperId;\n var isShown = ref.isShown;\n var shouldMountContent = ref.shouldMountContent;\n var skipTransition = ref.skipTransition;\n var autoHide = ref.autoHide;\n var hide = ref.hide;\n var handleResize = ref.handleResize;\n var onResize = ref.onResize;\n var classes = ref.classes;\n var result = ref.result;\n return [_c(\"PopperContent\", { ref: \"popperContent\", class: {\n \"v-popper--tooltip-loading\": _vm.loading\n }, attrs: { \"popper-id\": popperId, \"theme\": _vm.theme, \"shown\": isShown, \"mounted\": shouldMountContent, \"skip-transition\": skipTransition, \"auto-hide\": autoHide, \"handle-resize\": handleResize, \"classes\": classes, \"result\": result }, on: { \"hide\": hide, \"resize\": onResize } }, [_vm.html ? _c(\"div\", { domProps: { \"innerHTML\": _vm._s(_vm.finalContent) } }) : _c(\"div\", { domProps: { \"textContent\": _vm._s(_vm.finalContent) } })])];\n } }]) }, \"Popper\", _vm.$attrs, false), _vm.$listeners));\n};\nvar staticRenderFns = [];\nconst __cssModules = {};\nvar __component__ = /* @__PURE__ */ normalizeComponent(__vue2_script, render, staticRenderFns, false, __vue2_injectStyles, null, null, null);\nfunction __vue2_injectStyles(context) {\n for (let o in __cssModules) {\n this[o] = __cssModules[o];\n }\n}\nvar PrivateTooltipDirective = /* @__PURE__ */ function() {\n return __component__.exports;\n}();\nconst TARGET_CLASS = \"v-popper--has-tooltip\";\nfunction getPlacement(options2, modifiers) {\n let result = options2.placement;\n if (!result && modifiers) {\n for (const pos of placements) {\n if (modifiers[pos]) {\n result = pos;\n }\n }\n }\n if (!result) {\n result = getDefaultConfig(options2.theme || \"tooltip\", \"placement\");\n }\n return result;\n}\nfunction getOptions(el, value, modifiers) {\n let options2;\n const type = typeof value;\n if (type === \"string\") {\n options2 = { content: value };\n } else if (value && type === \"object\") {\n options2 = value;\n } else {\n options2 = { content: false };\n }\n options2.placement = getPlacement(options2, modifiers);\n options2.targetNodes = () => [el];\n options2.referenceNode = () => el;\n return options2;\n}\nfunction createTooltip(el, value, modifiers) {\n const options2 = getOptions(el, value, modifiers);\n const tooltipApp = el.$_popper = new Vue({\n mixins: [\n PrivatePopperMethods\n ],\n data() {\n return {\n options: options2\n };\n },\n render(h) {\n const _a = this.options, {\n theme,\n html,\n content,\n loadingContent\n } = _a, otherOptions = __objRest(_a, [\n \"theme\",\n \"html\",\n \"content\",\n \"loadingContent\"\n ]);\n return h(PrivateTooltipDirective, {\n props: {\n theme,\n html,\n content,\n loadingContent\n },\n attrs: otherOptions,\n ref: \"popper\"\n });\n },\n devtools: {\n hide: true\n }\n });\n const mountTarget = document.createElement(\"div\");\n document.body.appendChild(mountTarget);\n tooltipApp.$mount(mountTarget);\n if (el.classList) {\n el.classList.add(TARGET_CLASS);\n }\n return tooltipApp;\n}\nfunction destroyTooltip(el) {\n if (el.$_popper) {\n el.$_popper.$destroy();\n delete el.$_popper;\n delete el.$_popperOldShown;\n }\n if (el.classList) {\n el.classList.remove(TARGET_CLASS);\n }\n}\nfunction bind(el, { value, oldValue, modifiers }) {\n const options2 = getOptions(el, value, modifiers);\n if (!options2.content || getDefaultConfig(options2.theme || \"tooltip\", \"disabled\")) {\n destroyTooltip(el);\n } else {\n let tooltipApp;\n if (el.$_popper) {\n tooltipApp = el.$_popper;\n tooltipApp.options = options2;\n } else {\n tooltipApp = createTooltip(el, value, modifiers);\n }\n if (typeof value.shown !== \"undefined\" && value.shown !== el.$_popperOldShown) {\n el.$_popperOldShown = value.shown;\n value.shown ? tooltipApp.show() : tooltipApp.hide();\n }\n }\n}\nvar PrivateVTooltip = {\n bind,\n update: bind,\n unbind(el) {\n destroyTooltip(el);\n }\n};\nfunction addListeners(el) {\n el.addEventListener(\"click\", onClick);\n el.addEventListener(\"touchstart\", onTouchStart, supportsPassive ? {\n passive: true\n } : false);\n}\nfunction removeListeners(el) {\n el.removeEventListener(\"click\", onClick);\n el.removeEventListener(\"touchstart\", onTouchStart);\n el.removeEventListener(\"touchend\", onTouchEnd);\n el.removeEventListener(\"touchcancel\", onTouchCancel);\n}\nfunction onClick(event) {\n const el = event.currentTarget;\n event.closePopover = !el.$_vclosepopover_touch;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n}\nfunction onTouchStart(event) {\n if (event.changedTouches.length === 1) {\n const el = event.currentTarget;\n el.$_vclosepopover_touch = true;\n const touch = event.changedTouches[0];\n el.$_vclosepopover_touchPoint = touch;\n el.addEventListener(\"touchend\", onTouchEnd);\n el.addEventListener(\"touchcancel\", onTouchCancel);\n }\n}\nfunction onTouchEnd(event) {\n const el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n if (event.changedTouches.length === 1) {\n const touch = event.changedTouches[0];\n const firstTouch = el.$_vclosepopover_touchPoint;\n event.closePopover = Math.abs(touch.screenY - firstTouch.screenY) < 20 && Math.abs(touch.screenX - firstTouch.screenX) < 20;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n }\n}\nfunction onTouchCancel(event) {\n const el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n}\nvar PrivateVClosePopper = {\n bind(el, { value, modifiers }) {\n el.$_closePopoverModifiers = modifiers;\n if (typeof value === \"undefined\" || value) {\n addListeners(el);\n }\n },\n update(el, { value, oldValue, modifiers }) {\n el.$_closePopoverModifiers = modifiers;\n if (value !== oldValue) {\n if (typeof value === \"undefined\" || value) {\n addListeners(el);\n } else {\n removeListeners(el);\n }\n }\n },\n unbind(el) {\n removeListeners(el);\n }\n};\nconst options = config;\nconst VTooltip = PrivateVTooltip;\nconst VClosePopper = PrivateVClosePopper;\nconst Dropdown = PrivateDropdown;\nconst Menu = PrivateMenu;\nconst Popper = PrivatePopper;\nconst PopperContent = PrivatePopperContent;\nconst PopperMethods = PrivatePopperMethods;\nconst PopperWrapper = PrivatePopperWrapper;\nconst ThemeClass = PrivateThemeClass;\nconst Tooltip = PrivateTooltip;\nconst TooltipDirective = PrivateTooltipDirective;\nfunction install(app, options2 = {}) {\n if (app.$_vTooltipInstalled)\n return;\n app.$_vTooltipInstalled = true;\n assign(config, options2);\n app.directive(\"tooltip\", PrivateVTooltip);\n app.directive(\"close-popper\", PrivateVClosePopper);\n app.component(\"v-tooltip\", PrivateTooltip);\n app.component(\"VTooltip\", PrivateTooltip);\n app.component(\"v-dropdown\", PrivateDropdown);\n app.component(\"VDropdown\", PrivateDropdown);\n app.component(\"v-menu\", PrivateMenu);\n app.component(\"VMenu\", PrivateMenu);\n}\nconst plugin = {\n version: \"1.0.0-beta.18\",\n install,\n options: config\n};\nlet GlobalVue = null;\nif (typeof window !== \"undefined\") {\n GlobalVue = window.Vue;\n} else if (typeof global !== \"undefined\") {\n GlobalVue = global.Vue;\n}\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nvar floatingVue_es = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Dropdown: Dropdown,\n HIDE_EVENT_MAP: HIDE_EVENT_MAP,\n Menu: Menu,\n Popper: Popper,\n PopperContent: PopperContent,\n PopperMethods: PopperMethods,\n PopperWrapper: PopperWrapper,\n SHOW_EVENT_MAP: SHOW_EVENT_MAP,\n ThemeClass: ThemeClass,\n Tooltip: Tooltip,\n TooltipDirective: TooltipDirective,\n VClosePopper: VClosePopper,\n VTooltip: VTooltip,\n createTooltip: createTooltip,\n 'default': plugin,\n destroyTooltip: destroyTooltip,\n hideAllPoppers: hideAllPoppers,\n install: install,\n options: options,\n placements: placements\n});\n\nvar require$$1 = /*@__PURE__*/getAugmentedNamespace(floatingVue_es);\n\n/*!\n* tabbable 6.0.0\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\nvar candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]:not(slot)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])', 'details>summary:first-of-type', 'details'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n return element.getRootNode();\n} : function (element) {\n return element.ownerDocument;\n};\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\n\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n\n candidates = candidates.filter(filter);\n return candidates;\n};\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidatesScope\n * @property {Element} scope contains inner candidates\n * @property {Element[]} candidates\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidatesScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidatesScope>}\n */\n\n\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n } // iterate over shadow content if possible\n\n\n var shadowRoot = element.shadowRoot || // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n var validShadowRoot = !options.shadowRootFilter || options.shadowRootFilter(element);\n\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n\n return candidates;\n};\n\nvar getTabindex = function getTabindex(node, isScope) {\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n //\n // isScope is positive for custom element with shadow root or slot that by default\n // have tabIndex -1, but need to be sorted by document order in order for their\n // content to be inserted in the correct position\n if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || node.isContentEditable) && isNaN(parseInt(node.getAttribute('tabindex'), 10))) {\n return 0;\n }\n }\n\n return node.tabIndex;\n};\n\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\n\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\n\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\n\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\n\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\n\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n\n var radioScope = node.form || getRootNode(node);\n\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n\n var radioSet;\n\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\n\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\n\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n}; // determines if a node is ultimately attached to the window's document\n\n\nvar isNodeAttached = function isNodeAttached(node) {\n var _nodeRootHost;\n\n // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n // (but NOT _the_ document; see second 'If' comment below for more).\n // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n // is attached, and the one we need to check if it's in the document or not (because the\n // shadow, and all nodes it contains, is never considered in the document since shadows\n // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n // is hidden, or is not in the document itself but is detached, it will affect the shadow's\n // visibility, including all the nodes it contains). The host could be any normal node,\n // or a custom element (i.e. web component). Either way, that's the one that is considered\n // part of the document, not the shadow root, nor any of its children (i.e. the node being\n // tested).\n // To further complicate things, we have to look all the way up until we find a shadow HOST\n // that is attached (or find none) because the node might be in nested shadows...\n // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n // document (per the docs) and while it's a Document-type object, that document does not\n // appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n // node is actually detached.\n var nodeRootHost = getRootNode(node).host;\n var attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && _nodeRootHost.ownerDocument.contains(nodeRootHost) || node.ownerDocument.contains(node));\n\n while (!attached && nodeRootHost) {\n var _nodeRootHost2;\n\n // since it's not attached and we have a root host, the node MUST be in a nested shadow DOM,\n // which means we need to get the host's host and check if that parent host is contained\n // in (i.e. attached to) the document\n nodeRootHost = getRootNode(nodeRootHost).host;\n attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && _nodeRootHost2.ownerDocument.contains(nodeRootHost));\n }\n\n return attached;\n};\n\nvar isZeroArea = function isZeroArea(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n\n return width === 0 && height === 0;\n};\n\nvar isHidden = function isHidden(node, _ref) {\n var displayCheck = _ref.displayCheck,\n getShadowRoot = _ref.getShadowRoot;\n\n // NOTE: visibility will be `undefined` if node is detached from the document\n // (see notes about this further down), which means we will consider it visible\n // (this is legacy behavior from a very long way back)\n // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n // _visibility_ check, not a _display_ check\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n }\n\n if (!displayCheck || displayCheck === 'full' || displayCheck === 'legacy-full') {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n var originalNode = node;\n\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n\n node = originalNode;\n } // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n // now we can just test to see if it would normally be visible or not, provided it's\n // attached to the main document.\n // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n\n if (isNodeAttached(node)) {\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n return !node.getClientRects().length;\n } // Else, the node isn't attached to the document, which means the `getClientRects()`\n // API will __always__ return zero rects (this can happen, for example, if React\n // is used to render nodes onto a detached tree, as confirmed in this thread:\n // https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n //\n // It also means that even window.getComputedStyle(node).display will return `undefined`\n // because styles are only computed for nodes that are in the document.\n //\n // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n // somehow. Though it was never stated officially, anyone who has ever used tabbable\n // APIs on nodes in detached containers has actually implicitly used tabbable in what\n // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n // considering __everything__ to be visible because of the innability to determine styles.\n //\n // v6.0.0: As of this major release, the default 'full' option __no longer treats detached\n // nodes as visible with the 'none' fallback.__\n\n\n if (displayCheck !== 'legacy-full') {\n return true; // hidden\n } // else, fallback to 'none' mode and consider the node visible\n\n } else if (displayCheck === 'non-zero-area') {\n // NOTE: Even though this tests that the node's client rect is non-zero to determine\n // whether it's displayed, and that a detached node will __always__ have a zero-area\n // client rect, we don't special-case for whether the node is attached or not. In\n // this mode, we do want to consider nodes that have a zero area to be hidden at all\n // times, and that includes attached or not.\n return isZeroArea(node);\n } // visible, as far as we can tell, or per current `displayCheck=none` mode, we assume\n // it's visible\n\n\n return false;\n}; // form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\n\n\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement; // check if `node` is contained in a disabled <fieldset>\n\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i); // when the first <legend> (in document order) is found\n\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n } // the disabled <fieldset> containing `node` has no <legend>\n\n\n return true;\n }\n\n parentNode = parentNode.parentElement;\n }\n } // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n\n\n return false;\n};\n\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled || isHiddenInput(node) || isHidden(node, options) || // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n\n return true;\n};\n\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n\n return true;\n};\n\nvar isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n } // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n\n\n return false;\n};\n/**\n * @param {Array.<Element|CandidatesScope>} candidates\n * @returns Element[]\n */\n\n\nvar sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scope;\n var element = isScope ? item.scope : item;\n var candidateTabindex = getTabindex(element, isScope);\n var elements = isScope ? sortByOrder(item.candidates) : element;\n\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\n\nvar tabbable = function tabbable(el, options) {\n options = options || {};\n var candidates;\n\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n\n return sortByOrder(candidates);\n};\n\nvar focusable = function focusable(el, options) {\n options = options || {};\n var candidates;\n\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n\n return candidates;\n};\n\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n\n return isNodeMatchingSelectorTabbable(options, node);\n};\n\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');\n\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar activeFocusTraps = function () {\n var trapQueue = [];\n return {\n activateTrap: function activateTrap(trap) {\n if (trapQueue.length > 0) {\n var activeTrap = trapQueue[trapQueue.length - 1];\n\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n\n var trapIndex = trapQueue.indexOf(trap);\n\n if (trapIndex === -1) {\n trapQueue.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapQueue.splice(trapIndex, 1);\n trapQueue.push(trap);\n }\n },\n deactivateTrap: function deactivateTrap(trap) {\n var trapIndex = trapQueue.indexOf(trap);\n\n if (trapIndex !== -1) {\n trapQueue.splice(trapIndex, 1);\n }\n\n if (trapQueue.length > 0) {\n trapQueue[trapQueue.length - 1].unpause();\n }\n }\n };\n}();\n\nvar isSelectableInput = function isSelectableInput(node) {\n return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function';\n};\n\nvar isEscapeEvent = function isEscapeEvent(e) {\n return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;\n};\n\nvar isTabEvent = function isTabEvent(e) {\n return e.key === 'Tab' || e.keyCode === 9;\n};\n\nvar delay = function delay(fn) {\n return setTimeout(fn, 0);\n}; // Array.find/findIndex() are not supported on IE; this replicates enough\n// of Array.findIndex() for our needs\n\n\nvar findIndex = function findIndex(arr, fn) {\n var idx = -1;\n arr.every(function (value, i) {\n if (fn(value)) {\n idx = i;\n return false; // break\n }\n\n return true; // next\n });\n return idx;\n};\n/**\n * Get an option's value when it could be a plain value, or a handler that provides\n * the value.\n * @param {*} value Option's value to check.\n * @param {...*} [params] Any parameters to pass to the handler, if `value` is a function.\n * @returns {*} The `value`, or the handler's returned value.\n */\n\n\nvar valueOrHandler = function valueOrHandler(value) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n\n return typeof value === 'function' ? value.apply(void 0, params) : value;\n};\n\nvar getActualTarget = function getActualTarget(event) {\n // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the\n // shadow host. However, event.target.composedPath() will be an array of\n // nodes \"clicked\" from inner-most (the actual element inside the shadow) to\n // outer-most (the host HTML document). If we have access to composedPath(),\n // then use its first element; otherwise, fall back to event.target (and\n // this only works for an _open_ shadow DOM; otherwise,\n // composedPath()[0] === event.target always).\n return event.target.shadowRoot && typeof event.composedPath === 'function' ? event.composedPath()[0] : event.target;\n};\n\nvar createFocusTrap = function createFocusTrap(elements, userOptions) {\n // SSR: a live trap shouldn't be created in this type of environment so this\n // should be safe code to execute if the `document` option isn't specified\n var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;\n\n var config = _objectSpread2({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true\n }, userOptions);\n\n var state = {\n // containers given to createFocusTrap()\n // @type {Array<HTMLElement>}\n containers: [],\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n // @type {Array<{\n // container: HTMLElement,\n // tabbableNodes: Array<HTMLElement>, // empty if none\n // focusableNodes: Array<HTMLElement>, // empty if none\n // firstTabbableNode: HTMLElement|null,\n // lastTabbableNode: HTMLElement|null,\n // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n // }>}\n containerGroups: [],\n // same order/length as `containers` list\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: undefined\n };\n var trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later\n\n /**\n * Gets a configuration option value.\n * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set,\n * value will be taken from this object. Otherwise, value will be taken from base configuration.\n * @param {string} optionName Name of the option whose value is sought.\n * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName`\n * IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used.\n */\n\n var getOption = function getOption(configOverrideOptions, optionName, configOptionName) {\n return configOverrideOptions && configOverrideOptions[optionName] !== undefined ? configOverrideOptions[optionName] : config[configOptionName || optionName];\n };\n /**\n * Finds the index of the container that contains the element.\n * @param {HTMLElement} element\n * @returns {number} Index of the container in either `state.containers` or\n * `state.containerGroups` (the order/length of these lists are the same); -1\n * if the element isn't found.\n */\n\n\n var findContainerIndex = function findContainerIndex(element) {\n // NOTE: search `containerGroups` because it's possible a group contains no tabbable\n // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)\n // and we still need to find the element in there\n return state.containerGroups.findIndex(function (_ref) {\n var container = _ref.container,\n tabbableNodes = _ref.tabbableNodes;\n return container.contains(element) || // fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n tabbableNodes.find(function (node) {\n return node === element;\n });\n });\n };\n /**\n * Gets the node for the given option, which is expected to be an option that\n * can be either a DOM node, a string that is a selector to get a node, `false`\n * (if a node is explicitly NOT given), or a function that returns any of these\n * values.\n * @param {string} optionName\n * @returns {undefined | false | HTMLElement | SVGElement} Returns\n * `undefined` if the option is not specified; `false` if the option\n * resolved to `false` (node explicitly not given); otherwise, the resolved\n * DOM node.\n * @throws {Error} If the option is set, not `false`, and is not, or does not\n * resolve to a node.\n */\n\n\n var getNodeForOption = function getNodeForOption(optionName) {\n var optionValue = config[optionName];\n\n if (typeof optionValue === 'function') {\n for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n params[_key2 - 1] = arguments[_key2];\n }\n\n optionValue = optionValue.apply(void 0, params);\n }\n\n if (optionValue === true) {\n optionValue = undefined; // use default value\n }\n\n if (!optionValue) {\n if (optionValue === undefined || optionValue === false) {\n return optionValue;\n } // else, empty string (invalid), null (invalid), 0 (invalid)\n\n\n throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n }\n\n var node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point\n\n if (typeof optionValue === 'string') {\n node = doc.querySelector(optionValue); // resolve to node, or null if fails\n\n if (!node) {\n throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n }\n }\n\n return node;\n };\n\n var getInitialFocusNode = function getInitialFocusNode() {\n var node = getNodeForOption('initialFocus'); // false explicitly indicates we want no initialFocus at all\n\n if (node === false) {\n return false;\n }\n\n if (node === undefined) {\n // option not specified: use fallback options\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n var firstTabbableGroup = state.tabbableGroups[0];\n var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode; // NOTE: `fallbackFocus` option function cannot return `false` (not supported)\n\n node = firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n }\n\n if (!node) {\n throw new Error('Your focus-trap needs to have at least one focusable element');\n }\n\n return node;\n };\n\n var updateTabbableNodes = function updateTabbableNodes() {\n state.containerGroups = state.containers.map(function (container) {\n var tabbableNodes = tabbable(container, config.tabbableOptions); // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes\n // are a superset of tabbable nodes\n\n var focusableNodes = focusable(container, config.tabbableOptions);\n return {\n container: container,\n tabbableNodes: tabbableNodes,\n focusableNodes: focusableNodes,\n firstTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[0] : null,\n lastTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : null,\n\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode: function nextTabbableNode(node) {\n var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n // NOTE: If tabindex is positive (in order to manipulate the tab order separate\n // from the DOM order), this __will not work__ because the list of focusableNodes,\n // while it contains tabbable nodes, does not sort its nodes in any order other\n // than DOM order, because it can't: Where would you place focusable (but not\n // tabbable) nodes in that order? They have no order, because they aren't tabbale...\n // Support for positive tabindex is already broken and hard to manage (possibly\n // not supportable, TBD), so this isn't going to make things worse than they\n // already are, and at least makes things better for the majority of cases where\n // tabindex is either 0/unset or negative.\n // FYI, positive tabindex issue: https://github.com/focus-trap/focus-trap/issues/375\n var nodeIdx = focusableNodes.findIndex(function (n) {\n return n === node;\n });\n\n if (nodeIdx < 0) {\n return undefined;\n }\n\n if (forward) {\n return focusableNodes.slice(nodeIdx + 1).find(function (n) {\n return isTabbable(n, config.tabbableOptions);\n });\n }\n\n return focusableNodes.slice(0, nodeIdx).reverse().find(function (n) {\n return isTabbable(n, config.tabbableOptions);\n });\n }\n };\n });\n state.tabbableGroups = state.containerGroups.filter(function (group) {\n return group.tabbableNodes.length > 0;\n }); // throw if no groups have tabbable nodes and we don't have a fallback focus node either\n\n if (state.tabbableGroups.length <= 0 && !getNodeForOption('fallbackFocus') // returning false not supported for this option\n ) {\n throw new Error('Your focus-trap must have at least one container with at least one tabbable node in it at all times');\n }\n };\n\n var tryFocus = function tryFocus(node) {\n if (node === false) {\n return;\n }\n\n if (node === doc.activeElement) {\n return;\n }\n\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n\n node.focus({\n preventScroll: !!config.preventScroll\n });\n state.mostRecentlyFocusedNode = node;\n\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n\n var getReturnFocusNode = function getReturnFocusNode(previousActiveElement) {\n var node = getNodeForOption('setReturnFocus', previousActiveElement);\n return node ? node : node === false ? false : previousActiveElement;\n }; // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n\n\n var checkPointerDown = function checkPointerDown(e) {\n var target = getActualTarget(e);\n\n if (findContainerIndex(target) >= 0) {\n // allow the click since it ocurred inside the trap\n return;\n }\n\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n // immediately deactivate the trap\n trap.deactivate({\n // if, on deactivation, we should return focus to the node originally-focused\n // when the trap was activated (or the configured `setReturnFocus` node),\n // then assume it's also OK to return focus to the outside node that was\n // just clicked, causing deactivation, as long as that node is focusable;\n // if it isn't focusable, then return focus to the original node focused\n // on activation (or the configured `setReturnFocus` node)\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked, whether it's focusable or not; by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node)\n returnFocus: config.returnFocusOnDeactivate && !isFocusable(target, config.tabbableOptions)\n });\n return;\n } // This is needed for mobile devices.\n // (If we'll only let `click` events through,\n // then on mobile they will be blocked anyways if `touchstart` is blocked.)\n\n\n if (valueOrHandler(config.allowOutsideClick, e)) {\n // allow the click outside the trap to take place\n return;\n } // otherwise, prevent the click\n\n\n e.preventDefault();\n }; // In case focus escapes the trap for some strange reason, pull it back in.\n\n\n var checkFocusIn = function checkFocusIn(e) {\n var target = getActualTarget(e);\n var targetContained = findContainerIndex(target) >= 0; // In Firefox when you Tab out of an iframe the Document is briefly focused.\n\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n // escaped! pull it back in to where it just left\n e.stopImmediatePropagation();\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n }; // Hijack Tab events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n\n\n var checkTab = function checkTab(e) {\n var target = getActualTarget(e);\n updateTabbableNodes();\n var destinationNode = null;\n\n if (state.tabbableGroups.length > 0) {\n // make sure the target is actually contained in a group\n // NOTE: the target may also be the container itself if it's focusable\n // with tabIndex='-1' and was given initial focus\n var containerIndex = findContainerIndex(target);\n var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined;\n\n if (containerIndex < 0) {\n // target not found in any group: quite possible focus has escaped the trap,\n // so bring it back in to...\n if (e.shiftKey) {\n // ...the last node in the last group\n destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n // ...the first node in the first group\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (e.shiftKey) {\n // REVERSE\n // is the target the first tabbable node in a group?\n var startOfGroupIndex = findIndex(state.tabbableGroups, function (_ref2) {\n var firstTabbableNode = _ref2.firstTabbableNode;\n return target === firstTabbableNode;\n });\n\n if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {\n // an exception case where the target is either the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle shift+tab as if focus were on the container's\n // first tabbable node, and go to the last tabbable node of the LAST group\n startOfGroupIndex = containerIndex;\n }\n\n if (startOfGroupIndex >= 0) {\n // YES: then shift+tab should go to the last tabbable node in the\n // previous group (and wrap around to the last tabbable node of\n // the LAST group if it's the first tabbable node of the FIRST group)\n var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n var destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = destinationGroup.lastTabbableNode;\n }\n } else {\n // FORWARD\n // is the target the last tabbable node in a group?\n var lastOfGroupIndex = findIndex(state.tabbableGroups, function (_ref3) {\n var lastTabbableNode = _ref3.lastTabbableNode;\n return target === lastTabbableNode;\n });\n\n if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {\n // an exception case where the target is the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle tab as if focus were on the container's\n // last tabbable node, and go to the first tabbable node of the FIRST group\n lastOfGroupIndex = containerIndex;\n }\n\n if (lastOfGroupIndex >= 0) {\n // YES: then tab should go to the first tabbable node in the next\n // group (and wrap around to the first tabbable node of the FIRST\n // group if it's the last tabbable node of the LAST group)\n var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n\n var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];\n destinationNode = _destinationGroup.firstTabbableNode;\n }\n }\n } else {\n // NOTE: the fallbackFocus option does not support returning false to opt-out\n destinationNode = getNodeForOption('fallbackFocus');\n }\n\n if (destinationNode) {\n e.preventDefault();\n tryFocus(destinationNode);\n } // else, let the browser take care of [shift+]tab and move the focus\n\n };\n\n var checkKey = function checkKey(e) {\n if (isEscapeEvent(e) && valueOrHandler(config.escapeDeactivates, e) !== false) {\n e.preventDefault();\n trap.deactivate();\n return;\n }\n\n if (isTabEvent(e)) {\n checkTab(e);\n return;\n }\n };\n\n var checkClick = function checkClick(e) {\n var target = getActualTarget(e);\n\n if (findContainerIndex(target) >= 0) {\n return;\n }\n\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n\n e.preventDefault();\n e.stopImmediatePropagation();\n }; //\n // EVENT LISTENERS\n //\n\n\n var addListeners = function addListeners() {\n if (!state.active) {\n return;\n } // There can be only one listening focus trap at a time\n\n\n activeFocusTraps.activateTrap(trap); // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n\n state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function () {\n tryFocus(getInitialFocusNode());\n }) : tryFocus(getInitialFocusNode());\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkKey, {\n capture: true,\n passive: false\n });\n return trap;\n };\n\n var removeListeners = function removeListeners() {\n if (!state.active) {\n return;\n }\n\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkKey, true);\n return trap;\n }; //\n // TRAP DEFINITION\n //\n\n\n trap = {\n get active() {\n return state.active;\n },\n\n get paused() {\n return state.paused;\n },\n\n activate: function activate(activateOptions) {\n if (state.active) {\n return this;\n }\n\n var onActivate = getOption(activateOptions, 'onActivate');\n var onPostActivate = getOption(activateOptions, 'onPostActivate');\n var checkCanFocusTrap = getOption(activateOptions, 'checkCanFocusTrap');\n\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n\n if (onActivate) {\n onActivate();\n }\n\n var finishActivation = function finishActivation() {\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n\n addListeners();\n\n if (onPostActivate) {\n onPostActivate();\n }\n };\n\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n\n finishActivation();\n return this;\n },\n deactivate: function deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n\n var options = _objectSpread2({\n onDeactivate: config.onDeactivate,\n onPostDeactivate: config.onPostDeactivate,\n checkCanReturnFocus: config.checkCanReturnFocus\n }, deactivateOptions);\n\n clearTimeout(state.delayInitialFocusTimer); // noop if undefined\n\n state.delayInitialFocusTimer = undefined;\n removeListeners();\n state.active = false;\n state.paused = false;\n activeFocusTraps.deactivateTrap(trap);\n var onDeactivate = getOption(options, 'onDeactivate');\n var onPostDeactivate = getOption(options, 'onPostDeactivate');\n var checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');\n var returnFocus = getOption(options, 'returnFocus', 'returnFocusOnDeactivate');\n\n if (onDeactivate) {\n onDeactivate();\n }\n\n var finishDeactivation = function finishDeactivation() {\n delay(function () {\n if (returnFocus) {\n tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n\n if (onPostDeactivate) {\n onPostDeactivate();\n }\n });\n };\n\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);\n return this;\n }\n\n finishDeactivation();\n return this;\n },\n pause: function pause() {\n if (state.paused || !state.active) {\n return this;\n }\n\n state.paused = true;\n removeListeners();\n return this;\n },\n unpause: function unpause() {\n if (!state.paused || !state.active) {\n return this;\n }\n\n state.paused = false;\n updateTabbableNodes();\n addListeners();\n return this;\n },\n updateContainerElements: function updateContainerElements(containerElements) {\n var elementsAsArray = [].concat(containerElements).filter(Boolean);\n state.containers = elementsAsArray.map(function (element) {\n return typeof element === 'string' ? doc.querySelector(element) : element;\n });\n\n if (state.active) {\n updateTabbableNodes();\n }\n\n return this;\n }\n }; // initialize container elements\n\n trap.updateContainerElements(elements);\n return trap;\n};\n\nvar focusTrap_esm = /*#__PURE__*/Object.freeze({\n __proto__: null,\n createFocusTrap: createFocusTrap\n});\n\nvar require$$2 = /*@__PURE__*/getAugmentedNamespace(focusTrap_esm);\n\nvar DotsHorizontal = {\nrender: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',_vm._b({staticClass:\"material-design-icon dots-horizontal-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])},\nstaticRenderFns: [],\n name: \"DotsHorizontalIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\n\nvar DotsHorizontal$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n 'default': DotsHorizontal\n});\n\nvar require$$4 = /*@__PURE__*/getAugmentedNamespace(DotsHorizontal$1);\n\n(function (module, exports) {\n\t!function(e,t){module.exports=t();}(self,(function(){return function(){var e={8399:function(e,t,a){function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,o);}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t]);})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t));}));}return e}function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}a.d(t,{default:function(){return j}});var r={name:\"NcButton\",props:{disabled:{type:Boolean,default:!1},type:{type:String,validator:function(e){return -1!==[\"primary\",\"secondary\",\"tertiary\",\"tertiary-no-background\",\"tertiary-on-primary\",\"error\",\"warning\",\"success\"].indexOf(e)},default:\"secondary\"},nativeType:{type:String,validator:function(e){return -1!==[\"submit\",\"reset\",\"button\"].indexOf(e)},default:\"button\"},wide:{type:Boolean,default:!1},ariaLabel:{type:String,default:null},href:{type:String,default:null},to:{type:[String,Object],default:null},exact:{type:Boolean,default:!1}},data:function(){return {slots:this.$slots}},computed:{rootElement:function(){return this.to?i({is:\"router-link\",tag:\"button\",to:this.to,exact:this.exact},this.$attrs):this.href?i({is:\"a\",href:this.href},this.$attrs):i({is:\"button\"},this.$attrs)},hasText:function(){var e,t,a;return void 0!==(null===(e=this.slots)||void 0===e?void 0:e.default)&&(null===(t=this.slots)||void 0===t||null===(a=t.default[0])||void 0===a?void 0:a.text)},hasIcon:function(){return void 0!==this.slots.icon},iconOnly:function(){return this.hasIcon&&!this.hasText},textOnly:function(){return !this.hasIcon&&this.hasText},iconAndText:function(){return this.hasIcon&&this.hasText},text:function(){return this.hasText?this.slots.default[0].text.trim():null},buttonClassObject:function(){var e;return n(e={\"button-vue--icon-only\":this.iconOnly,\"button-vue--text-only\":this.textOnly,\"button-vue--icon-and-text\":this.iconAndText},\"button-vue--vue-\".concat(this.type),this.type),n(e,\"button-vue--wide\",this.wide),e}},beforeUpdate:function(){this.slots=this.$slots;},mounted:function(){this.text||this.ariaLabel||console.warn(\"You need to fill either the text or the ariaLabel props in the button component.\",{text:this.text,ariaLabel:this.ariaLabel},this);}},s=a(3379),l=a.n(s),c=a(7795),u=a.n(c),d=a(569),m=a.n(d),p=a(3565),g=a.n(p),A=a(9216),v=a.n(A),h=a(4589),b=a.n(h),f=a(7190),C={};C.styleTagTransform=b(),C.setAttributes=g(),C.insert=m().bind(null,\"head\"),C.domAPI=u(),C.insertStyleElement=v(),l()(f.Z,C),f.Z&&f.Z.locals&&f.Z.locals;var y=a(1900),k=a(2102),S=a.n(k),w=(0, y.Z)(r,(function(){var e=this,t=e._self._c;return t(\"root-element\",e._g(e._b({staticClass:\"button-vue\",class:e.buttonClassObject,attrs:{\"aria-label\":e.ariaLabel,type:e.nativeType,disabled:e.disabled}},\"root-element\",e.rootElement,!1),e.$listeners),[t(\"span\",{staticClass:\"button-vue__wrapper\"},[e.hasIcon?t(\"span\",{staticClass:\"button-vue__icon\"},[e._t(\"icon\")],2):e._e(),e._v(\" \"),e.hasText?t(\"span\",{staticClass:\"button-vue__text\"},[e._t(\"default\")],2):e._e()])])}),[],!1,null,\"7a8f3349\",null);\"function\"==typeof S()&&S()(w);var j=w.exports;},1481:function(e,t,a){a.d(t,{default:function(){return P}});var o=a(9454),i=a(4505);function n(e,t,a,o,i,n,r){try{var s=e[n](r),l=s.value;}catch(e){return void a(e)}s.done?t(l):Promise.resolve(l).then(o,i);}var r={name:\"NcPopover\",components:{Dropdown:o.Dropdown},props:{popoverBaseClass:{type:String,default:\"\"},focusTrap:{type:Boolean,default:!0}},emits:[\"after-show\",\"after-hide\"],beforeDestroy:function(){this.clearFocusTrap();},methods:{useFocusTrap:function(){var e,t=this;return (e=regeneratorRuntime.mark((function e(){var a,o,n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.$nextTick();case 2:if(t.focusTrap){e.next=4;break}return e.abrupt(\"return\");case 4:if(n=null===(a=t.$refs.popover)||void 0===a||null===(o=a.$refs.popperContent)||void 0===o?void 0:o.$el){e.next=7;break}return e.abrupt(\"return\");case 7:t.$focusTrap=(0, i.createFocusTrap)(n,{escapeDeactivates:!1,allowOutsideClick:!0}),t.$focusTrap.activate();case 9:case\"end\":return e.stop()}}),e)})),function(){var t=this,a=arguments;return new Promise((function(o,i){var r=e.apply(t,a);function s(e){n(r,o,i,s,l,\"next\",e);}function l(e){n(r,o,i,s,l,\"throw\",e);}s(void 0);}))})()},clearFocusTrap:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{var t;null===(t=this.$focusTrap)||void 0===t||t.deactivate(e),this.$focusTrap=null;}catch(e){console.warn(e);}},afterShow:function(){this.$emit(\"after-show\"),this.useFocusTrap();},afterHide:function(){this.$emit(\"after-hide\"),this.clearFocusTrap();}}},s=r,l=a(3379),c=a.n(l),u=a(7795),d=a.n(u),m=a(569),p=a.n(m),g=a(3565),A=a.n(g),v=a(9216),h=a.n(v),b=a(4589),f=a.n(b),C=a(8985),y={};y.styleTagTransform=f(),y.setAttributes=A(),y.insert=p().bind(null,\"head\"),y.domAPI=d(),y.insertStyleElement=h(),c()(C.Z,y),C.Z&&C.Z.locals&&C.Z.locals;var k=a(1900),S=a(2405),w=a.n(S),j=(0, k.Z)(s,(function(){var e=this;return (0, e._self._c)(\"Dropdown\",e._g(e._b({ref:\"popover\",attrs:{distance:10,\"arrow-padding\":10,\"popper-class\":e.popoverBaseClass},on:{\"apply-show\":e.afterShow,\"apply-hide\":e.afterHide},scopedSlots:e._u([{key:\"popper\",fn:function(){return [e._t(\"default\")]},proxy:!0}],null,!0)},\"Dropdown\",e.$attrs,!1),e.$listeners),[e._t(\"trigger\")],2)}),[],!1,null,null,null);\"function\"==typeof w()&&w()(j);var P=j.exports;},336:function(e,t,a){a.d(t,{default:function(){return b}});var o=a(9454),i=a(3379),n=a.n(i),r=a(7795),s=a.n(r),l=a(569),c=a.n(l),u=a(3565),d=a.n(u),m=a(9216),p=a.n(m),g=a(4589),A=a.n(g),v=a(8384),h={};h.styleTagTransform=A(),h.setAttributes=d(),h.insert=c().bind(null,\"head\"),h.domAPI=s(),h.insertStyleElement=p(),n()(v.Z,h),v.Z&&v.Z.locals&&v.Z.locals,o.options.themes.tooltip.html=!1,o.options.themes.tooltip.delay={show:500,hide:200},o.options.themes.tooltip.distance=10,o.options.themes.tooltip[\"arrow-padding\"]=3;var b=o.VTooltip;},932:function(e,t,a){a.d(t,{t:function(){return n}});var o=(0, a(754).getGettextBuilder)().detectLocale();[{locale:\"ar\",translations:{\"{tag} (invisible)\":\"{tag} (غير مرئي)\",\"{tag} (restricted)\":\"{tag} (مقيد)\",Actions:\"الإجراءات\",Activities:\"النشاطات\",\"Animals & Nature\":\"الحيوانات والطبيعة\",\"Avatar of {displayName}\":\"صورة {displayName} الرمزية\",\"Avatar of {displayName}, {status}\":\"صورة {displayName} الرمزية، {status}\",\"Cancel changes\":\"إلغاء التغييرات\",Choose:\"إختيار\",Close:\"أغلق\",\"Close navigation\":\"إغلاق المتصفح\",\"Confirm changes\":\"تأكيد التغييرات\",Custom:\"مخصص\",\"Edit item\":\"تعديل عنصر\",\"External documentation for {title}\":\"الوثائق الخارجية لـ{title}\",Flags:\"الأعلام\",\"Food & Drink\":\"الطعام والشراب\",\"Frequently used\":\"كثيرا ما تستخدم\",Global:\"عالمي\",\"Go back to the list\":\"العودة إلى القائمة\",\"Message limit of {count} characters reached\":\"تم الوصول إلى الحد الأقصى لعدد الأحرف في الرسالة: {count} حرف\",Next:\"التالي\",\"No emoji found\":\"لم يتم العثور على أي رمز تعبيري\",\"No results\":\"ليس هناك أية نتيجة\",Objects:\"الأشياء\",\"Open navigation\":\"فتح المتصفح\",\"Pause slideshow\":\"إيقاف العرض مؤقتًا\",\"People & Body\":\"الناس والجسم\",\"Pick an emoji\":\"اختر رمزًا تعبيريًا\",\"Please select a time zone:\":\"الرجاء تحديد المنطقة الزمنية:\",Previous:\"السابق\",Search:\"بحث\",\"Search results\":\"نتائج البحث\",\"Select a tag\":\"اختر علامة\",Settings:\"الإعدادات\",\"Settings navigation\":\"إعدادات المتصفح\",\"Smileys & Emotion\":\"الوجوه و الرموز التعبيرية\",\"Start slideshow\":\"بدء العرض\",Submit:\"إرسال\",Symbols:\"الرموز\",\"Travel & Places\":\"السفر والأماكن\",\"Type to search time zone\":\"اكتب للبحث عن منطقة زمنية\",\"Unable to search the group\":\"تعذر البحث في المجموعة\",\"Undo changes\":\"التراجع عن التغييرات\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"اكتب رسالة، @ للإشارة إلى شخص ما، : للإكمال التلقائي للرموز التعبيرية ...\"}},{locale:\"br\",translations:{\"{tag} (invisible)\":\"{tag} (diwelus)\",\"{tag} (restricted)\":\"{tag} (bevennet)\",Actions:\"Oberioù\",Activities:\"Oberiantizoù\",\"Animals & Nature\":\"Loened & Natur\",Choose:\"Dibab\",Close:\"Serriñ\",Custom:\"Personelañ\",Flags:\"Bannieloù\",\"Food & Drink\":\"Boued & Evajoù\",\"Frequently used\":\"Implijet alies\",Next:\"Da heul\",\"No emoji found\":\"Emoji ebet kavet\",\"No results\":\"Disoc'h ebet\",Objects:\"Traoù\",\"Pause slideshow\":\"Arsav an diaporama\",\"People & Body\":\"Tud & Korf\",\"Pick an emoji\":\"Choaz un emoji\",Previous:\"A-raok\",Search:\"Klask\",\"Search results\":\"Disoc'hoù an enklask\",\"Select a tag\":\"Choaz ur c'hlav\",Settings:\"Arventennoù\",\"Smileys & Emotion\":\"Smileyioù & Fromoù\",\"Start slideshow\":\"Kregiñ an diaporama\",Symbols:\"Arouezioù\",\"Travel & Places\":\"Beaj & Lec'hioù\",\"Unable to search the group\":\"Dibosupl eo klask ar strollad\"}},{locale:\"ca\",translations:{\"{tag} (invisible)\":\"{tag} (invisible)\",\"{tag} (restricted)\":\"{tag} (restringit)\",Actions:\"Accions\",Activities:\"Activitats\",\"Animals & Nature\":\"Animals i natura\",\"Avatar of {displayName}\":\"Avatar de {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar de {displayName}, {status}\",\"Cancel changes\":\"Cancel·la els canvis\",\"Change title\":\"Canviar títol\",Choose:\"Tria\",\"Clear text\":\"Netejar text\",Close:\"Tanca\",\"Close modal\":\"Tancar el mode\",\"Close navigation\":\"Tanca la navegació\",\"Close sidebar\":\"Tancar la barra lateral\",\"Confirm changes\":\"Confirmeu els canvis\",Custom:\"Personalitzat\",\"Edit item\":\"Edita l'element\",\"Error getting related resources\":\"Error obtenint els recursos relacionats\",\"External documentation for {title}\":\"Documentació externa per a {title}\",Favorite:\"Preferit\",Flags:\"Marques\",\"Food & Drink\":\"Menjar i begudes\",\"Frequently used\":\"Utilitzats recentment\",Global:\"Global\",\"Go back to the list\":\"Torna a la llista\",\"Hide password\":\"Amagar contrasenya\",items:\"elements\",\"Message limit of {count} characters reached\":\"S'ha arribat al límit de {count} caràcters per missatge\",\"More {dashboardItemType} …\":\"Més {dashboardItemType} …\",Next:\"Següent\",\"No emoji found\":\"No s'ha trobat cap emoji\",\"No results\":\"Sense resultats\",Objects:\"Objectes\",Open:\"Obrir\",'Open link to \"{resourceTitle}\"':'Obrir enllaç a \"{resourceTitle}\"',\"Open navigation\":\"Obre la navegació\",\"Password is secure\":\"Contrasenya segura<br>\",\"Pause slideshow\":\"Atura la presentació\",\"People & Body\":\"Persones i cos\",\"Pick a date\":\"Seleccioni un dia \",\"Pick a date and a time\":\"Seleccioni un dia i hora\",\"Pick a month\":\"Seleccioni un mes\",\"Pick a time\":\"Seleccioni una hora\",\"Pick a week\":\"Seleccioni una setmana\",\"Pick a year\":\"Seleccioni un any\",\"Pick an emoji\":\"Trieu un emoji\",\"Please select a time zone:\":\"Seleccioneu una zona horària:\",Previous:\"Anterior\",\"Related resources\":\"Recursos relacionats\",Search:\"Cerca\",\"Search results\":\"Resultats de cerca\",\"Select a tag\":\"Seleccioneu una etiqueta\",Settings:\"Paràmetres\",\"Settings navigation\":\"Navegació d'opcions\",\"Show password\":\"Mostrar contrasenya\",\"Smileys & Emotion\":\"Cares i emocions\",\"Start slideshow\":\"Inicia la presentació\",Submit:\"Envia\",Symbols:\"Símbols\",\"Travel & Places\":\"Viatges i llocs\",\"Type to search time zone\":\"Escriviu per cercar la zona horària\",\"Unable to search the group\":\"No es pot cercar el grup\",\"Undo changes\":\"Desfés els canvis\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Escriu un missatge, @ per esmentar algú, : per a la compleció automàtica d'emojis...\"}},{locale:\"cs_CZ\",translations:{\"{tag} (invisible)\":\"{tag} (neviditelné)\",\"{tag} (restricted)\":\"{tag} (omezené)\",Actions:\"Akce\",Activities:\"Aktivity\",\"Animals & Nature\":\"Zvířata a příroda\",\"Avatar of {displayName}\":\"Zástupný obrázek uživatele {displayName}\",\"Avatar of {displayName}, {status}\":\"Zástupný obrázek uživatele {displayName}, {status}\",\"Cancel changes\":\"Zrušit změny\",\"Change title\":\"Změnit nadpis\",Choose:\"Zvolit\",\"Clear text\":\"Čitelný text\",Close:\"Zavřít\",\"Close modal\":\"Zavřít dialogové okno\",\"Close navigation\":\"Zavřít navigaci\",\"Close sidebar\":\"Zavřít postranní panel\",\"Confirm changes\":\"Potvrdit změny\",Custom:\"Uživatelsky určené\",\"Edit item\":\"Upravit položku\",\"Error getting related resources\":\"Chyba při získávání souvisejících prostředků\",\"External documentation for {title}\":\"Externí dokumentace k {title}\",Favorite:\"Oblíbené\",Flags:\"Příznaky\",\"Food & Drink\":\"Jídlo a pití\",\"Frequently used\":\"Často používané\",Global:\"Globální\",\"Go back to the list\":\"Jít zpět na seznam\",\"Hide password\":\"Skrýt heslo\",\"Message limit of {count} characters reached\":\"Dosaženo limitu počtu ({count}) znaků zprávy\",\"More items …\":\"Další položky…\",Next:\"Následující\",\"No emoji found\":\"Nenalezeno žádné emoji\",\"No results\":\"Nic nenalezeno\",Objects:\"Objekty\",Open:\"Otevřít\",'Open link to \"{resourceTitle}\"':\"Otevřít odkaz na „{resourceTitle}“\",\"Open navigation\":\"Otevřít navigaci\",\"Password is secure\":\"Heslo je bezpečné\",\"Pause slideshow\":\"Pozastavit prezentaci\",\"People & Body\":\"Lidé a tělo\",\"Pick a date\":\"Vyberte datum\",\"Pick a date and a time\":\"Vyberte datum a čas\",\"Pick a month\":\"Vyberte měsíc\",\"Pick a time\":\"Vyberte čas\",\"Pick a week\":\"Vyberte týden\",\"Pick a year\":\"Vyberte rok\",\"Pick an emoji\":\"Vybrat emoji\",\"Please select a time zone:\":\"Vyberte časovou zónu:\",Previous:\"Předchozí\",\"Related resources\":\"Související prostředky\",Search:\"Hledat\",\"Search results\":\"Výsledky hledání\",\"Select a tag\":\"Vybrat štítek\",Settings:\"Nastavení\",\"Settings navigation\":\"Pohyb po nastavení\",\"Show password\":\"Zobrazit heslo\",\"Smileys & Emotion\":\"Úsměvy a emoce\",\"Start slideshow\":\"Spustit prezentaci\",Submit:\"Odeslat\",Symbols:\"Symboly\",\"Travel & Places\":\"Cestování a místa\",\"Type to search time zone\":\"Psaním vyhledejte časovou zónu\",\"Unable to search the group\":\"Nedaří se hledat skupinu\",\"Undo changes\":\"Vzít změny zpět\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Napište zprávu pokud chcete někoho zmínit, napište před jeho uživatelským jménem @ (zavináč); automatické doplňování emotikonů zahájíte napsáním : (dvojtečky)…\"}},{locale:\"da\",translations:{\"{tag} (invisible)\":\"{tag} (usynlig)\",\"{tag} (restricted)\":\"{tag} (begrænset)\",Actions:\"Handlinger\",Activities:\"Aktiviteter\",\"Animals & Nature\":\"Dyr & Natur\",Choose:\"Vælg\",Close:\"Luk\",Custom:\"Brugerdefineret\",Flags:\"Flag\",\"Food & Drink\":\"Mad & Drikke\",\"Frequently used\":\"Ofte brugt\",\"Message limit of {count} characters reached\":\"Begrænsning på {count} tegn er nået\",Next:\"Videre\",\"No emoji found\":\"Ingen emoji fundet\",\"No results\":\"Ingen resultater\",Objects:\"Objekter\",\"Pause slideshow\":\"Suspender fremvisning\",\"People & Body\":\"Mennesker & Menneskekroppen\",\"Pick an emoji\":\"Vælg en emoji\",Previous:\"Forrige\",Search:\"Søg\",\"Search results\":\"Søgeresultater\",\"Select a tag\":\"Vælg et mærke\",Settings:\"Indstillinger\",\"Settings navigation\":\"Naviger i indstillinger\",\"Smileys & Emotion\":\"Smileys & Emotion\",\"Start slideshow\":\"Start fremvisning\",Symbols:\"Symboler\",\"Travel & Places\":\"Rejser & Rejsemål\",\"Unable to search the group\":\"Kan ikke søge på denne gruppe\",\"Write message, @ to mention someone …\":\"Skriv i meddelelse, @ for at nævne nogen …\"}},{locale:\"de\",translations:{\"{tag} (invisible)\":\"{tag} (unsichtbar)\",\"{tag} (restricted)\":\"{tag} (eingeschränkt)\",Actions:\"Aktionen\",Activities:\"Aktivitäten\",\"Animals & Nature\":\"Tiere & Natur\",\"Avatar of {displayName}\":\"Avatar von {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar von {displayName}, {status}\",\"Cancel changes\":\"Änderungen verwerfen\",\"Change title\":\"Titel ändern\",Choose:\"Auswählen\",\"Clear text\":\"Klartext\",Close:\"Schließen\",\"Close modal\":\"Modal schließen\",\"Close navigation\":\"Navigation schließen\",\"Close sidebar\":\"Seitenleiste schließen\",\"Confirm changes\":\"Änderungen bestätigen\",Custom:\"Benutzerdefiniert\",\"Edit item\":\"Objekt bearbeiten\",\"Error getting related resources\":\"Fehler beim Abrufen verwandter Ressourcen\",\"External documentation for {title}\":\"Externe Dokumentation für {title}\",Favorite:\"Favorit\",Flags:\"Flaggen\",\"Food & Drink\":\"Essen & Trinken\",\"Frequently used\":\"Häufig verwendet\",Global:\"Global\",\"Go back to the list\":\"Zurück zur Liste\",\"Hide password\":\"Passwort verbergen\",\"Message limit of {count} characters reached\":\"Nachrichtenlimit von {count} Zeichen erreicht\",\"More items …\":\"Weitere Elemente …\",Next:\"Weiter\",\"No emoji found\":\"Kein Emoji gefunden\",\"No results\":\"Keine Ergebnisse\",Objects:\"Gegenstände\",Open:\"Öffnen\",'Open link to \"{resourceTitle}\"':'Link zu \"{resourceTitle}\" öffnen',\"Open navigation\":\"Navigation öffnen\",\"Password is secure\":\"Passwort ist sicher\",\"Pause slideshow\":\"Diashow pausieren\",\"People & Body\":\"Menschen & Körper\",\"Pick a date\":\"Ein Datum auswählen\",\"Pick a date and a time\":\"Datum und Uhrzeit auswählen\",\"Pick a month\":\"Einen Monat auswählen\",\"Pick a time\":\"Eine Uhrzeit auswählen\",\"Pick a week\":\"Eine Woche auswählen\",\"Pick a year\":\"Ein Jahr auswählen\",\"Pick an emoji\":\"Ein Emoji auswählen\",\"Please select a time zone:\":\"Bitte wählen Sie eine Zeitzone:\",Previous:\"Vorherige\",\"Related resources\":\"Verwandte Ressourcen\",Search:\"Suche\",\"Search results\":\"Suchergebnisse\",\"Select a tag\":\"Schlagwort auswählen\",Settings:\"Einstellungen\",\"Settings navigation\":\"Einstellungen für die Navigation\",\"Show password\":\"Passwort anzeigen\",\"Smileys & Emotion\":\"Smileys & Emotionen\",\"Start slideshow\":\"Diashow starten\",Submit:\"Einreichen\",Symbols:\"Symbole\",\"Travel & Places\":\"Reisen & Orte\",\"Type to search time zone\":\"Tippen, um Zeitzone zu suchen\",\"Unable to search the group\":\"Die Gruppe konnte nicht durchsucht werden\",\"Undo changes\":\"Änderungen rückgängig machen\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Nachricht schreiben, @, um jemanden zu erwähnen, : für die automatische Vervollständigung von Emojis … \"}},{locale:\"de_DE\",translations:{\"{tag} (invisible)\":\"{tag} (unsichtbar)\",\"{tag} (restricted)\":\"{tag} (eingeschränkt)\",Actions:\"Aktionen\",Activities:\"Aktivitäten\",\"Animals & Nature\":\"Tiere & Natur\",\"Avatar of {displayName}\":\"Avatar von {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar von {displayName}, {status}\",\"Cancel changes\":\"Änderungen verwerfen\",\"Change title\":\"Titel ändern\",Choose:\"Auswählen\",\"Clear text\":\"Klartext\",Close:\"Schließen\",\"Close modal\":\"Modal schließen\",\"Close navigation\":\"Navigation schließen\",\"Close sidebar\":\"Seitenleiste schließen\",\"Confirm changes\":\"Änderungen bestätigen\",Custom:\"Benutzerdefiniert\",\"Edit item\":\"Objekt bearbeiten\",\"Error getting related resources\":\"Fehler beim Abrufen verwandter Ressourcen\",\"External documentation for {title}\":\"Externe Dokumentation für {title}\",Favorite:\"Favorit\",Flags:\"Flaggen\",\"Food & Drink\":\"Essen & Trinken\",\"Frequently used\":\"Häufig verwendet\",Global:\"Global\",\"Go back to the list\":\"Zurück zur Liste\",\"Hide password\":\"Passwort verbergen\",\"Message limit of {count} characters reached\":\"Nachrichtenlimit von {count} Zeichen erreicht\",\"More items …\":\"Weitere Elemente …\",Next:\"Weiter\",\"No emoji found\":\"Kein Emoji gefunden\",\"No results\":\"Keine Ergebnisse\",Objects:\"Objekte\",Open:\"Öffnen\",'Open link to \"{resourceTitle}\"':'Link zu \"{resourceTitle}\" öffnen',\"Open navigation\":\"Navigation öffnen\",\"Password is secure\":\"Passwort ist sicher\",\"Pause slideshow\":\"Diashow pausieren\",\"People & Body\":\"Menschen & Körper\",\"Pick a date\":\"Ein Datum auswählen\",\"Pick a date and a time\":\"Datum und Uhrzeit auswählen\",\"Pick a month\":\"Einen Monat auswählen\",\"Pick a time\":\"Eine Uhrzeit auswählen\",\"Pick a week\":\"Eine Woche auswählen\",\"Pick a year\":\"Ein Jahr auswählen\",\"Pick an emoji\":\"Ein Emoji auswählen\",\"Please select a time zone:\":\"Bitte eine Zeitzone auswählen:\",Previous:\"Vorherige\",\"Related resources\":\"Verwandte Ressourcen\",Search:\"Suche\",\"Search results\":\"Suchergebnisse\",\"Select a tag\":\"Schlagwort auswählen\",Settings:\"Einstellungen\",\"Settings navigation\":\"Einstellungen für die Navigation\",\"Show password\":\"Passwort anzeigen\",\"Smileys & Emotion\":\"Smileys & Emotionen\",\"Start slideshow\":\"Diashow starten\",Submit:\"Einreichen\",Symbols:\"Symbole\",\"Travel & Places\":\"Reisen & Orte\",\"Type to search time zone\":\"Tippen, um eine Zeitzone zu suchen\",\"Unable to search the group\":\"Die Gruppe kann nicht durchsucht werden\",\"Undo changes\":\"Änderungen rückgängig machen\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Nachricht schreiben, @, um jemanden zu erwähnen, : für die automatische Vervollständigung von Emojis …\"}},{locale:\"el\",translations:{\"{tag} (invisible)\":\"{tag} (αόρατο)\",\"{tag} (restricted)\":\"{tag} (περιορισμένο)\",Actions:\"Ενέργειες\",Activities:\"Δραστηριότητες\",\"Animals & Nature\":\"Ζώα & Φύση\",\"Avatar of {displayName}\":\"Άβαταρ του {displayName}\",\"Cancel changes\":\"Ακύρωση αλλαγών\",Choose:\"Επιλογή\",Close:\"Κλείσιμο\",\"Close navigation\":\"Κλείσιμο πλοήγησης\",\"Confirm changes\":\"Επιβεβαίωση αλλαγών\",Custom:\"Προσαρμογή\",\"Edit item\":\"Επεξεργασία\",\"External documentation for {title}\":\"Εξωτερική τεκμηρίωση για {title}\",Flags:\"Σημαίες\",\"Food & Drink\":\"Φαγητό & Ποτό\",\"Frequently used\":\"Συχνά χρησιμοποιούμενο\",Global:\"Καθολικό\",\"Go back to the list\":\"Επιστροφή στην αρχική λίστα \",\"Message limit of {count} characters reached\":\"Συμπληρώθηκε το όριο των {count} χαρακτήρων του μηνύματος\",Next:\"Επόμενο\",\"No emoji found\":\"Δεν βρέθηκε emoji\",\"No results\":\"Κανένα αποτέλεσμα\",Objects:\"Αντικείμενα\",\"Open navigation\":\"Άνοιγμα πλοήγησης\",\"Pause slideshow\":\"Παύση προβολής διαφανειών\",\"People & Body\":\"Άνθρωποι & Σώμα\",\"Pick an emoji\":\"Επιλέξτε ένα emoji\",\"Please select a time zone:\":\"Παρακαλούμε επιλέξτε μια ζώνη ώρας:\",Previous:\"Προηγούμενο\",Search:\"Αναζήτηση\",\"Search results\":\"Αποτελέσματα αναζήτησης\",\"Select a tag\":\"Επιλογή ετικέτας\",Settings:\"Ρυθμίσεις\",\"Settings navigation\":\"Πλοήγηση ρυθμίσεων\",\"Smileys & Emotion\":\"Φατσούλες & Συναίσθημα\",\"Start slideshow\":\"Έναρξη προβολής διαφανειών\",Submit:\"Υποβολή\",Symbols:\"Σύμβολα\",\"Travel & Places\":\"Ταξίδια & Τοποθεσίες\",\"Type to search time zone\":\"Πληκτρολογήστε για αναζήτηση ζώνης ώρας\",\"Unable to search the group\":\"Δεν είναι δυνατή η αναζήτηση της ομάδας\",\"Undo changes\":\"Αναίρεση Αλλαγών\",\"Write message, @ to mention someone …\":\"Γράψτε ένα μήνυμα, και με το σύμβολο @, μνημονεύστε κάποιον …\"}},{locale:\"en_GB\",translations:{\"{tag} (invisible)\":\"{tag} (invisible)\",\"{tag} (restricted)\":\"{tag} (restricted)\",Actions:\"Actions\",Activities:\"Activities\",\"Animals & Nature\":\"Animals & Nature\",\"Avatar of {displayName}\":\"Avatar of {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar of {displayName}, {status}\",\"Cancel changes\":\"Cancel changes\",\"Change title\":\"Change title\",Choose:\"Choose\",Close:\"Close\",\"Close modal\":\"Close modal\",\"Close navigation\":\"Close navigation\",\"Close sidebar\":\"Close sidebar\",\"Confirm changes\":\"Confirm changes\",Custom:\"Custom\",\"Edit item\":\"Edit item\",\"External documentation for {title}\":\"External documentation for {title}\",Favorite:\"Favourite\",Flags:\"Flags\",\"Food & Drink\":\"Food & Drink\",\"Frequently used\":\"Frequently used\",Global:\"Global\",\"Go back to the list\":\"Go back to the list\",items:\"items\",\"Message limit of {count} characters reached\":\"Message limit of {count} characters reached\",\"More {dashboardItemType} …\":\"More {dashboardItemType} …\",Next:\"Next\",\"No emoji found\":\"No emoji found\",\"No results\":\"No results\",Objects:\"Objects\",Open:\"Open\",\"Open navigation\":\"Open navigation\",\"Pause slideshow\":\"Pause slideshow\",\"People & Body\":\"People & Body\",\"Pick an emoji\":\"Pick an emoji\",\"Please select a time zone:\":\"Please select a time zone:\",Previous:\"Previous\",Search:\"Search\",\"Search results\":\"Search results\",\"Select a tag\":\"Select a tag\",Settings:\"Settings\",\"Settings navigation\":\"Settings navigation\",\"Smileys & Emotion\":\"Smileys & Emotion\",\"Start slideshow\":\"Start slideshow\",Submit:\"Submit\",Symbols:\"Symbols\",\"Travel & Places\":\"Travel & Places\",\"Type to search time zone\":\"Type to search time zone\",\"Unable to search the group\":\"Unable to search the group\",\"Undo changes\":\"Undo changes\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Write message, @ to mention someone, : for emoji autocompletion …\"}},{locale:\"eo\",translations:{\"{tag} (invisible)\":\"{tag} (kaŝita)\",\"{tag} (restricted)\":\"{tag} (limigita)\",Actions:\"Agoj\",Activities:\"Aktiveco\",\"Animals & Nature\":\"Bestoj & Naturo\",Choose:\"Elektu\",Close:\"Fermu\",Custom:\"Propra\",Flags:\"Flagoj\",\"Food & Drink\":\"Manĝaĵo & Trinkaĵo\",\"Frequently used\":\"Ofte uzataj\",\"Message limit of {count} characters reached\":\"La limo je {count} da literoj atingita\",Next:\"Sekva\",\"No emoji found\":\"La emoĝio forestas\",\"No results\":\"La rezulto forestas\",Objects:\"Objektoj\",\"Pause slideshow\":\"Payzi bildprezenton\",\"People & Body\":\"Homoj & Korpo\",\"Pick an emoji\":\"Elekti emoĝion \",Previous:\"Antaŭa\",Search:\"Serĉi\",\"Search results\":\"Serĉrezultoj\",\"Select a tag\":\"Elektu etikedon\",Settings:\"Agordo\",\"Settings navigation\":\"Agorda navigado\",\"Smileys & Emotion\":\"Ridoj kaj Emocioj\",\"Start slideshow\":\"Komenci bildprezenton\",Symbols:\"Signoj\",\"Travel & Places\":\"Vojaĵoj & Lokoj\",\"Unable to search the group\":\"Ne eblas serĉi en la grupo\",\"Write message, @ to mention someone …\":\"Mesaĝi, uzu @ por mencii iun ...\"}},{locale:\"es\",translations:{\"{tag} (invisible)\":\"{tag} (invisible)\",\"{tag} (restricted)\":\"{tag} (restringido)\",Actions:\"Acciones\",Activities:\"Actividades\",\"Animals & Nature\":\"Animales y naturaleza\",\"Avatar of {displayName}\":\"Avatar de {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar de {displayName}, {status}\",\"Cancel changes\":\"Cancelar cambios\",\"Change title\":\"Cambiar título\",Choose:\"Elegir\",Close:\"Cerrar\",\"Close modal\":\"Cerrar modal\",\"Close navigation\":\"Cerrar navegación\",\"Confirm changes\":\"Confirmar cambios\",Custom:\"Personalizado\",\"Edit item\":\"Editar elemento\",\"External documentation for {title}\":\"Documentacion externa de {title}\",Favorite:\"Favorito\",Flags:\"Banderas\",\"Food & Drink\":\"Comida y bebida\",\"Frequently used\":\"Usado con frecuenca\",Global:\"Global\",\"Go back to the list\":\"Volver a la lista\",items:\"elementos\",\"Message limit of {count} characters reached\":\"El mensaje ha alcanzado el límite de {count} caracteres\",\"More {dashboardItemType} …\":\"Más {dashboardItemType} ...\",Next:\"Siguiente\",\"No emoji found\":\"No hay ningún emoji\",\"No results\":\" Ningún resultado\",Objects:\"Objetos\",Open:\"Abrir\",\"Open navigation\":\"Abrir navegación\",\"Pause slideshow\":\"Pausar la presentación \",\"People & Body\":\"Personas y cuerpos\",\"Pick an emoji\":\"Elegir un emoji\",\"Please select a time zone:\":\"Por favor elige un huso de horario:\",Previous:\"Anterior\",Search:\"Buscar\",\"Search results\":\"Resultados de la búsqueda\",\"Select a tag\":\"Seleccione una etiqueta\",Settings:\"Ajustes\",\"Settings navigation\":\"Navegación por ajustes\",\"Smileys & Emotion\":\"Smileys y emoticonos\",\"Start slideshow\":\"Iniciar la presentación\",Submit:\"Enviar\",Symbols:\"Símbolos\",\"Travel & Places\":\"Viajes y lugares\",\"Type to search time zone\":\"Escribe para buscar un huso de horario\",\"Unable to search the group\":\"No es posible buscar en el grupo\",\"Undo changes\":\"Deshacer cambios\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Escribe un mensaje, @ para mencionar a alguien, : para autocompletado de emoji ...\"}},{locale:\"eu\",translations:{\"{tag} (invisible)\":\"{tag} (ikusezina)\",\"{tag} (restricted)\":\"{tag} (mugatua)\",Actions:\"Ekintzak\",Activities:\"Jarduerak\",\"Animals & Nature\":\"Animaliak eta Natura\",\"Avatar of {displayName}\":\"{displayName}-(e)n irudia\",\"Avatar of {displayName}, {status}\":\"{displayName} -(e)n irudia, {status}\",\"Cancel changes\":\"Ezeztatu aldaketak\",\"Change title\":\"Aldatu titulua\",Choose:\"Aukeratu\",Close:\"Itxi\",\"Close modal\":\"Itxi modala\",\"Close navigation\":\"Itxi nabigazioa\",\"Close sidebar\":\"Itxi albo-barra\",\"Confirm changes\":\"Baieztatu aldaketak\",Custom:\"Pertsonalizatua\",\"Edit item\":\"Editatu elementua\",\"External documentation for {title}\":\"Kanpoko dokumentazioa {title}(r)entzat\",Favorite:\"Gogokoa\",Flags:\"Banderak\",\"Food & Drink\":\"Janaria eta edariak\",\"Frequently used\":\"Askotan erabilia\",Global:\"Globala\",\"Go back to the list\":\"Bueltatu zerrendara\",items:\"elementuak\",\"Message limit of {count} characters reached\":\"Mezuaren {count} karaketere-limitera heldu zara\",\"More {dashboardItemType} …\":\"{dashboardItemType} gehiago…\",Next:\"Hurrengoa\",\"No emoji found\":\"Ez da emojirik aurkitu\",\"No results\":\"Emaitzarik ez\",Objects:\"Objektuak\",Open:\"Ireki\",\"Open navigation\":\"Ireki nabigazioa\",\"Pause slideshow\":\"Pausatu diaporama\",\"People & Body\":\"Jendea eta gorputza\",\"Pick an emoji\":\"Aukeratu emoji bat\",\"Please select a time zone:\":\"Mesedez hautatu ordu-zona bat:\",Previous:\"Aurrekoa\",Search:\"Bilatu\",\"Search results\":\"Bilaketa emaitzak\",\"Select a tag\":\"Hautatu etiketa bat\",Settings:\"Ezarpenak\",\"Settings navigation\":\"Nabigazio ezarpenak\",\"Smileys & Emotion\":\"Smileyak eta emozioa\",\"Start slideshow\":\"Hasi diaporama\",Submit:\"Bidali\",Symbols:\"Sinboloak\",\"Travel & Places\":\"Bidaiak eta lekuak\",\"Type to search time zone\":\"Idatzi ordu-zona bat bilatzeko\",\"Unable to search the group\":\"Ezin izan da taldea bilatu\",\"Undo changes\":\"Aldaketak desegin\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Idatzi mezua, @ norbait aipatzeko, : emojia automatikoki idazteko\"}},{locale:\"fi_FI\",translations:{\"{tag} (invisible)\":\"{tag} (näkymätön)\",\"{tag} (restricted)\":\"{tag} (rajoitettu)\",Actions:\"Toiminnot\",Activities:\"Aktiviteetit\",\"Animals & Nature\":\"Eläimet & luonto\",\"Avatar of {displayName}\":\"Käyttäjän {displayName} avatar\",\"Avatar of {displayName}, {status}\":\"Käyttäjän {displayName} avatar, {status}\",\"Cancel changes\":\"Peruuta muutokset\",Choose:\"Valitse\",Close:\"Sulje\",\"Close navigation\":\"Sulje navigaatio\",\"Confirm changes\":\"Vahvista muutokset\",Custom:\"Mukautettu\",\"Edit item\":\"Muokkaa kohdetta\",\"External documentation for {title}\":\"Ulkoinen dokumentaatio kohteelle {title}\",Flags:\"Liput\",\"Food & Drink\":\"Ruoka & juoma\",\"Frequently used\":\"Usein käytetyt\",Global:\"Yleinen\",\"Go back to the list\":\"Siirry takaisin listaan\",\"Message limit of {count} characters reached\":\"Viestin merkken enimmäisimäärä {count} täynnä \",Next:\"Seuraava\",\"No emoji found\":\"Emojia ei löytynyt\",\"No results\":\"Ei tuloksia\",Objects:\"Esineet & asiat\",\"Open navigation\":\"Avaa navigaatio\",\"Pause slideshow\":\"Keskeytä diaesitys\",\"People & Body\":\"Ihmiset & keho\",\"Pick an emoji\":\"Valitse emoji\",\"Please select a time zone:\":\"Valitse aikavyöhyke:\",Previous:\"Edellinen\",Search:\"Etsi\",\"Search results\":\"Hakutulokset\",\"Select a tag\":\"Valitse tagi\",Settings:\"Asetukset\",\"Settings navigation\":\"Asetusnavigaatio\",\"Smileys & Emotion\":\"Hymiöt & tunteet\",\"Start slideshow\":\"Aloita diaesitys\",Submit:\"Lähetä\",Symbols:\"Symbolit\",\"Travel & Places\":\"Matkustus & kohteet\",\"Type to search time zone\":\"Kirjoita etsiäksesi aikavyöhyke\",\"Unable to search the group\":\"Ryhmää ei voi hakea\",\"Undo changes\":\"Kumoa muutokset\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Kirjoita viesti, @ mainitaksesi käyttäjän, : emojin automaattitäydennykseen…\"}},{locale:\"fr\",translations:{\"{tag} (invisible)\":\"{tag} (invisible)\",\"{tag} (restricted)\":\"{tag} (restreint)\",Actions:\"Actions\",Activities:\"Activités\",\"Animals & Nature\":\"Animaux & Nature\",\"Avatar of {displayName}\":\"Avatar de {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar de {displayName}, {status}\",\"Cancel changes\":\"Annuler les modifications\",Choose:\"Choisir\",Close:\"Fermer\",\"Close modal\":\"Fermer la fenêtre\",\"Close navigation\":\"Fermer la navigation\",\"Confirm changes\":\"Confirmer les modifications\",Custom:\"Personnalisé\",\"Edit item\":\"Éditer l'élément\",\"External documentation for {title}\":\"Documentation externe pour {title}\",Flags:\"Drapeaux\",\"Food & Drink\":\"Nourriture & Boissons\",\"Frequently used\":\"Utilisés fréquemment\",Global:\"Global\",\"Go back to the list\":\"Retourner à la liste\",items:\"éléments\",\"Message limit of {count} characters reached\":\"Limite de messages de {count} caractères atteinte\",\"More {dashboardItemType} …\":\"Plus de {dashboardItemType} …\",Next:\"Suivant\",\"No emoji found\":\"Pas démoji trouvé\",\"No results\":\"Aucun résultat\",Objects:\"Objets\",Open:\"Ouvrir\",\"Open navigation\":\"Ouvrir la navigation\",\"Pause slideshow\":\"Mettre le diaporama en pause\",\"People & Body\":\"Personnes & Corps\",\"Pick an emoji\":\"Choisissez un émoji\",\"Please select a time zone:\":\"Sélectionnez un fuseau horaire : \",Previous:\"Précédent\",Search:\"Chercher\",\"Search results\":\"Résultats de recherche\",\"Select a tag\":\"Sélectionnez une balise\",Settings:\"Paramètres\",\"Settings navigation\":\"Navigation dans les paramètres\",\"Smileys & Emotion\":\"Smileys & Émotions\",\"Start slideshow\":\"Démarrer le diaporama\",Submit:\"Valider\",Symbols:\"Symboles\",\"Travel & Places\":\"Voyage & Lieux\",\"Type to search time zone\":\"Saisissez les premiers lettres pour rechercher un fuseau horaire\",\"Unable to search the group\":\"Impossible de chercher le groupe\",\"Undo changes\":\"Annuler les changements\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Ecrire un message, @ pour mentionner quelqu'un, : pour l'auto-complétion des émoticônes\"}},{locale:\"gl\",translations:{\"{tag} (invisible)\":\"{tag} (invisíbel)\",\"{tag} (restricted)\":\"{tag} (restrinxido)\",Actions:\"Accións\",Activities:\"Actividades\",\"Animals & Nature\":\"Animais e natureza\",\"Cancel changes\":\"Cancelar os cambios\",Choose:\"Escoller\",Close:\"Pechar\",\"Confirm changes\":\"Confirma os cambios\",Custom:\"Personalizado\",\"External documentation for {title}\":\"Documentación externa para {title}\",Flags:\"Bandeiras\",\"Food & Drink\":\"Comida e bebida\",\"Frequently used\":\"Usado con frecuencia\",\"Message limit of {count} characters reached\":\"Acadouse o límite de {count} caracteres por mensaxe\",Next:\"Seguinte\",\"No emoji found\":\"Non se atopou ningún «emoji»\",\"No results\":\"Sen resultados\",Objects:\"Obxectos\",\"Pause slideshow\":\"Pausar o diaporama\",\"People & Body\":\"Persoas e corpo\",\"Pick an emoji\":\"Escolla un «emoji»\",Previous:\"Anterir\",Search:\"Buscar\",\"Search results\":\"Resultados da busca\",\"Select a tag\":\"Seleccione unha etiqueta\",Settings:\"Axustes\",\"Settings navigation\":\"Navegación polos axustes\",\"Smileys & Emotion\":\"Sorrisos e emocións\",\"Start slideshow\":\"Iniciar o diaporama\",Submit:\"Enviar\",Symbols:\"Símbolos\",\"Travel & Places\":\"Viaxes e lugares\",\"Unable to search the group\":\"Non foi posíbel buscar o grupo\",\"Write message, @ to mention someone …\":\"Escriba a mensaxe, @ para mencionar a alguén…\"}},{locale:\"he\",translations:{\"{tag} (invisible)\":\"{tag} (נסתר)\",\"{tag} (restricted)\":\"{tag} (מוגבל)\",Actions:\"פעולות\",Activities:\"פעילויות\",\"Animals & Nature\":\"חיות וטבע\",Choose:\"בחירה\",Close:\"סגירה\",Custom:\"בהתאמה אישית\",Flags:\"דגלים\",\"Food & Drink\":\"מזון ומשקאות\",\"Frequently used\":\"בשימוש תדיר\",Next:\"הבא\",\"No emoji found\":\"לא נמצא אמוג׳י\",\"No results\":\"אין תוצאות\",Objects:\"חפצים\",\"Pause slideshow\":\"השהיית מצגת\",\"People & Body\":\"אנשים וגוף\",\"Pick an emoji\":\"נא לבחור אמוג׳י\",Previous:\"הקודם\",Search:\"חיפוש\",\"Search results\":\"תוצאות חיפוש\",\"Select a tag\":\"בחירת תגית\",Settings:\"הגדרות\",\"Smileys & Emotion\":\"חייכנים ורגשונים\",\"Start slideshow\":\"התחלת המצגת\",Symbols:\"סמלים\",\"Travel & Places\":\"טיולים ומקומות\",\"Unable to search the group\":\"לא ניתן לחפש בקבוצה\"}},{locale:\"hu_HU\",translations:{\"{tag} (invisible)\":\"{tag} (láthatatlan)\",\"{tag} (restricted)\":\"{tag} (korlátozott)\",Actions:\"Műveletek\",Activities:\"Tevékenységek\",\"Animals & Nature\":\"Állatok és természet\",\"Avatar of {displayName}\":\"{displayName} profilképe\",\"Avatar of {displayName}, {status}\":\"{displayName} profilképe, {status}\",\"Cancel changes\":\"Változtatások elvetése\",Choose:\"Válassszon\",Close:\"Bezárás\",\"Close modal\":\"Ablak bezárása\",\"Close navigation\":\"Navigáció bezárása\",\"Confirm changes\":\"Változtatások megerősítése\",Custom:\"Egyéni\",\"Edit item\":\"Elem szerkesztése\",\"External documentation for {title}\":\"Külső dokumentáció ehhez: {title}\",Flags:\"Zászló\",\"Food & Drink\":\"Étel és ital\",\"Frequently used\":\"Gyakran használt\",Global:\"Globális\",\"Go back to the list\":\"Ugrás vissza a listához\",items:\"elemek\",\"Message limit of {count} characters reached\":\"{count} karakteres üzenetkorlát elérve\",\"More {dashboardItemType} …\":\"Több {dashboardItemType}…\",Next:\"Következő\",\"No emoji found\":\"Nem található emodzsi\",\"No results\":\"Nincs találat\",Objects:\"Tárgyak\",Open:\"Megnyitás\",\"Open navigation\":\"Navigáció megnyitása\",\"Pause slideshow\":\"Diavetítés szüneteltetése\",\"People & Body\":\"Emberek és test\",\"Pick an emoji\":\"Válasszon egy emodzsit\",\"Please select a time zone:\":\"Válasszon időzónát:\",Previous:\"Előző\",Search:\"Keresés\",\"Search results\":\"Találatok\",\"Select a tag\":\"Válasszon címkét\",Settings:\"Beállítások\",\"Settings navigation\":\"Navigáció a beállításokban\",\"Smileys & Emotion\":\"Mosolyok és érzelmek\",\"Start slideshow\":\"Diavetítés indítása\",Submit:\"Beküldés\",Symbols:\"Szimbólumok\",\"Travel & Places\":\"Utazás és helyek\",\"Type to search time zone\":\"Gépeljen az időzóna kereséséhez\",\"Unable to search the group\":\"A csoport nem kereshető\",\"Undo changes\":\"Változtatások visszavonása\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Írjon üzenetet, @ valaki megemlítéséhez, : az emodzsik automatikus kiegészítéséhez…\"}},{locale:\"is\",translations:{\"{tag} (invisible)\":\"{tag} (ósýnilegt)\",\"{tag} (restricted)\":\"{tag} (takmarkað)\",Actions:\"Aðgerðir\",Activities:\"Aðgerðir\",\"Animals & Nature\":\"Dýr og náttúra\",Choose:\"Velja\",Close:\"Loka\",Custom:\"Sérsniðið\",Flags:\"Flögg\",\"Food & Drink\":\"Matur og drykkur\",\"Frequently used\":\"Oftast notað\",Next:\"Næsta\",\"No emoji found\":\"Ekkert tjáningartákn fannst\",\"No results\":\"Engar niðurstöður\",Objects:\"Hlutir\",\"Pause slideshow\":\"Gera hlé á skyggnusýningu\",\"People & Body\":\"Fólk og líkami\",\"Pick an emoji\":\"Veldu tjáningartákn\",Previous:\"Fyrri\",Search:\"Leita\",\"Search results\":\"Leitarniðurstöður\",\"Select a tag\":\"Veldu merki\",Settings:\"Stillingar\",\"Smileys & Emotion\":\"Broskallar og tilfinningar\",\"Start slideshow\":\"Byrja skyggnusýningu\",Symbols:\"Tákn\",\"Travel & Places\":\"Staðir og ferðalög\",\"Unable to search the group\":\"Get ekki leitað í hópnum\"}},{locale:\"it\",translations:{\"{tag} (invisible)\":\"{tag} (invisibile)\",\"{tag} (restricted)\":\"{tag} (limitato)\",Actions:\"Azioni\",Activities:\"Attività\",\"Animals & Nature\":\"Animali e natura\",\"Avatar of {displayName}\":\"Avatar di {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar di {displayName}, {status}\",\"Cancel changes\":\"Annulla modifiche\",Choose:\"Scegli\",Close:\"Chiudi\",\"Close navigation\":\"Chiudi la navigazione\",\"Confirm changes\":\"Conferma modifiche\",Custom:\"Personalizzato\",\"Edit item\":\"Modifica l'elemento\",\"External documentation for {title}\":\"Documentazione esterna per {title}\",Flags:\"Bandiere\",\"Food & Drink\":\"Cibo e bevande\",\"Frequently used\":\"Usati di frequente\",Global:\"Globale\",\"Go back to the list\":\"Torna all'elenco\",\"Message limit of {count} characters reached\":\"Limite dei messaggi di {count} caratteri raggiunto\",Next:\"Successivo\",\"No emoji found\":\"Nessun emoji trovato\",\"No results\":\"Nessun risultato\",Objects:\"Oggetti\",\"Open navigation\":\"Apri la navigazione\",\"Pause slideshow\":\"Presentazione in pausa\",\"People & Body\":\"Persone e corpo\",\"Pick an emoji\":\"Scegli un emoji\",\"Please select a time zone:\":\"Si prega di selezionare un fuso orario:\",Previous:\"Precedente\",Search:\"Cerca\",\"Search results\":\"Risultati di ricerca\",\"Select a tag\":\"Seleziona un'etichetta\",Settings:\"Impostazioni\",\"Settings navigation\":\"Navigazione delle impostazioni\",\"Smileys & Emotion\":\"Faccine ed emozioni\",\"Start slideshow\":\"Avvia presentazione\",Submit:\"Invia\",Symbols:\"Simboli\",\"Travel & Places\":\"Viaggi e luoghi\",\"Type to search time zone\":\"Digita per cercare un fuso orario\",\"Unable to search the group\":\"Impossibile cercare il gruppo\",\"Undo changes\":\"Cancella i cambiamenti\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Scrivi un messaggio, @ per menzionare qualcuno, : per il completamento automatico delle emoji ...\"}},{locale:\"ja_JP\",translations:{\"{tag} (invisible)\":\"{タグ} (不可視)\",\"{tag} (restricted)\":\"{タグ} (制限付)\",Actions:\"操作\",Activities:\"アクティビティ\",\"Animals & Nature\":\"動物と自然\",\"Avatar of {displayName}\":\"{displayName} のアバター\",\"Avatar of {displayName}, {status}\":\"{displayName}, {status} のアバター\",\"Cancel changes\":\"変更をキャンセル\",\"Change title\":\"タイトルを変更\",Choose:\"選択\",\"Clear text\":\"テキストをクリア\",Close:\"閉じる\",\"Close modal\":\"モーダルを閉じる\",\"Close navigation\":\"ナビゲーションを閉じる\",\"Close sidebar\":\"サイドバーを閉じる\",\"Confirm changes\":\"変更を承認\",Custom:\"カスタム\",\"Edit item\":\"編集\",\"Error getting related resources\":\"関連リソースの取得エラー\",\"External documentation for {title}\":\"{title} のための添付文書\",Favorite:\"お気に入り\",Flags:\"国旗\",\"Food & Drink\":\"食べ物と飲み物\",\"Frequently used\":\"よく使うもの\",Global:\"全体\",\"Go back to the list\":\"リストに戻る\",\"Hide password\":\"パスワードを非表示\",items:\"アイテム\",\"Message limit of {count} characters reached\":\"{count} 文字のメッセージ上限に達しています\",\"More {dashboardItemType} …\":\"{dashboardItemType} をさらに表示…\",Next:\"次\",\"No emoji found\":\"絵文字が見つかりません\",\"No results\":\"なし\",Objects:\"物\",Open:\"開く\",'Open link to \"{resourceTitle}\"':'\"{resourceTitle}\"のリンクを開く',\"Open navigation\":\"ナビゲーションを開く\",\"Password is secure\":\"パスワードは保護されています\",\"Pause slideshow\":\"スライドショーを一時停止\",\"People & Body\":\"様々な人と体の部位\",\"Pick a date\":\"日付を選択してください\",\"Pick a date and a time\":\"日付と時刻を選択してください\",\"Pick a month\":\"月を選択してください\",\"Pick a time\":\"時間を選択してください\",\"Pick a week\":\"週を選択してください\",\"Pick a year\":\"年を選択してください\",\"Pick an emoji\":\"絵文字を選択\",\"Please select a time zone:\":\"タイムゾーンを選んで下さい:\",Previous:\"前\",\"Related resources\":\"関連リソース\",Search:\"検索\",\"Search results\":\"検索結果\",\"Select a tag\":\"タグを選択\",Settings:\"設定\",\"Settings navigation\":\"ナビゲーション設定\",\"Show password\":\"パスワードを表示\",\"Smileys & Emotion\":\"感情表現\",\"Start slideshow\":\"スライドショーを開始\",Submit:\"提出\",Symbols:\"記号\",\"Travel & Places\":\"旅行と場所\",\"Type to search time zone\":\"タイムゾーン検索のため入力してください\",\"Unable to search the group\":\"グループを検索できません\",\"Undo changes\":\"変更を取り消し\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"メッセージを書く、@で誰かを紹介する、: で絵文字を自動補完する ...\"}},{locale:\"lt_LT\",translations:{\"{tag} (invisible)\":\"{tag} (nematoma)\",\"{tag} (restricted)\":\"{tag} (apribota)\",Actions:\"Veiksmai\",Activities:\"Veiklos\",\"Animals & Nature\":\"Gyvūnai ir gamta\",Choose:\"Pasirinkti\",Close:\"Užverti\",Custom:\"Tinkinti\",\"External documentation for {title}\":\"Išorinė {title} dokumentacija\",Flags:\"Vėliavos\",\"Food & Drink\":\"Maistas ir gėrimai\",\"Frequently used\":\"Dažniausiai naudoti\",\"Message limit of {count} characters reached\":\"Pasiekta {count} simbolių žinutės riba\",Next:\"Kitas\",\"No emoji found\":\"Nerasta jaustukų\",\"No results\":\"Nėra rezultatų\",Objects:\"Objektai\",\"Pause slideshow\":\"Pristabdyti skaidrių rodymą\",\"People & Body\":\"Žmonės ir kūnas\",\"Pick an emoji\":\"Pasirinkti jaustuką\",Previous:\"Ankstesnis\",Search:\"Ieškoti\",\"Search results\":\"Paieškos rezultatai\",\"Select a tag\":\"Pasirinkti žymę\",Settings:\"Nustatymai\",\"Settings navigation\":\"Naršymas nustatymuose\",\"Smileys & Emotion\":\"Šypsenos ir emocijos\",\"Start slideshow\":\"Pradėti skaidrių rodymą\",Submit:\"Pateikti\",Symbols:\"Simboliai\",\"Travel & Places\":\"Kelionės ir vietos\",\"Unable to search the group\":\"Nepavyko atlikti paiešką grupėje\",\"Write message, @ to mention someone …\":\"Rašykite žinutę, naudokite @ norėdami kažką paminėti…\"}},{locale:\"lv\",translations:{\"{tag} (invisible)\":\"{tag} (neredzams)\",\"{tag} (restricted)\":\"{tag} (ierobežots)\",Choose:\"Izvēlēties\",Close:\"Aizvērt\",Next:\"Nākamais\",\"No results\":\"Nav rezultātu\",\"Pause slideshow\":\"Pauzēt slaidrādi\",Previous:\"Iepriekšējais\",\"Select a tag\":\"Izvēlēties birku\",Settings:\"Iestatījumi\",\"Start slideshow\":\"Sākt slaidrādi\"}},{locale:\"mk\",translations:{\"{tag} (invisible)\":\"{tag} (невидливо)\",\"{tag} (restricted)\":\"{tag} (ограничено)\",Actions:\"Акции\",Activities:\"Активности\",\"Animals & Nature\":\"Животни & Природа\",\"Avatar of {displayName}\":\"Аватар на {displayName}\",\"Avatar of {displayName}, {status}\":\"Аватар на {displayName}, {status}\",\"Cancel changes\":\"Откажи ги промените\",\"Change title\":\"Промени наслов\",Choose:\"Избери\",Close:\"Затвори\",\"Close modal\":\"Затвори модал\",\"Close navigation\":\"Затвори навигација\",\"Confirm changes\":\"Потврди ги промените\",Custom:\"Прилагодени\",\"Edit item\":\"Уреди\",\"External documentation for {title}\":\"Надворешна документација за {title}\",Favorite:\"Фаворити\",Flags:\"Знамиња\",\"Food & Drink\":\"Храна & Пијалоци\",\"Frequently used\":\"Најчесто користени\",Global:\"Глобално\",\"Go back to the list\":\"Врати се на листата\",items:\"ставки\",\"Message limit of {count} characters reached\":\"Ограничувањето на должината на пораката од {count} карактери е надминато\",\"More {dashboardItemType} …\":\"Повеќе {dashboardItemType} …\",Next:\"Следно\",\"No emoji found\":\"Не се пронајдени емотикони\",\"No results\":\"Нема резултати\",Objects:\"Објекти\",Open:\"Отвори\",\"Open navigation\":\"Отвори навигација\",\"Pause slideshow\":\"Пузирај слајдшоу\",\"People & Body\":\"Луѓе & Тело\",\"Pick an emoji\":\"Избери емотикон\",\"Please select a time zone:\":\"Изберете временска зона:\",Previous:\"Предходно\",Search:\"Барај\",\"Search results\":\"Резултати од барувањето\",\"Select a tag\":\"Избери ознака\",Settings:\"Параметри\",\"Settings navigation\":\"Параметри за навигација\",\"Smileys & Emotion\":\"Смешковци & Емотикони\",\"Start slideshow\":\"Стартувај слајдшоу\",Submit:\"Испрати\",Symbols:\"Симболи\",\"Travel & Places\":\"Патувања & Места\",\"Type to search time zone\":\"Напишете за да пребарате временска зона\",\"Unable to search the group\":\"Неможе да се принајде групата\",\"Undo changes\":\"Врати ги промените\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Напиши порака, @ за да спомнете некого, : за емотинони автоатско комплетирање ...\"}},{locale:\"my\",translations:{\"{tag} (invisible)\":\"{tag} (ကွယ်ဝှက်ထား)\",\"{tag} (restricted)\":\"{tag} (ကန့်သတ်)\",Actions:\"လုပ်ဆောင်ချက်များ\",Activities:\"ပြုလုပ်ဆောင်တာများ\",\"Animals & Nature\":\"တိရစ္ဆာန်များနှင့် သဘာဝ\",\"Avatar of {displayName}\":\"{displayName} ၏ ကိုယ်ပွား\",\"Cancel changes\":\"ပြောင်းလဲမှုများ ပယ်ဖျက်ရန်\",Choose:\"ရွေးချယ်ရန်\",Close:\"ပိတ်ရန်\",\"Confirm changes\":\"ပြောင်းလဲမှုများ အတည်ပြုရန်\",Custom:\"အလိုကျချိန်ညှိမှု\",\"External documentation for {title}\":\"{title} အတွက် ပြင်ပ စာရွက်စာတမ်း\",Flags:\"အလံများ\",\"Food & Drink\":\"အစားအသောက်\",\"Frequently used\":\"မကြာခဏအသုံးပြုသော\",Global:\"ကမ္ဘာလုံးဆိုင်ရာ\",\"Message limit of {count} characters reached\":\"ကန့်သတ် စာလုံးရေ {count} လုံး ပြည့်ပါပြီ\",Next:\"နောက်သို့ဆက်ရန်\",\"No emoji found\":\"အီမိုဂျီ ရှာဖွေမတွေ့နိုင်ပါ\",\"No results\":\"ရလဒ်မရှိပါ\",Objects:\"အရာဝတ္ထုများ\",\"Pause slideshow\":\"စလိုက်ရှိုး ခေတ္တရပ်ရန်\",\"People & Body\":\"လူပုဂ္ဂိုလ်များနှင့် ခန္ဓာကိုယ်\",\"Pick an emoji\":\"အီမိုဂျီရွေးရန်\",\"Please select a time zone:\":\"ဒေသစံတော်ချိန် ရွေးချယ်ပေးပါ\",Previous:\"ယခင်\",Search:\"ရှာဖွေရန်\",\"Search results\":\"ရှာဖွေမှု ရလဒ်များ\",\"Select a tag\":\"tag ရွေးချယ်ရန်\",Settings:\"ချိန်ညှိချက်များ\",\"Settings navigation\":\"ချိန်ညှိချက်အညွှန်း\",\"Smileys & Emotion\":\"စမိုင်လီများနှင့် အီမိုရှင်း\",\"Start slideshow\":\"စလိုက်ရှိုးအား စတင်ရန်\",Submit:\"တင်သွင်းရန်\",Symbols:\"သင်္ကေတများ\",\"Travel & Places\":\"ခရီးသွားလာခြင်းနှင့် နေရာများ\",\"Type to search time zone\":\"ဒေသစံတော်ချိန်များ ရှာဖွေရန် စာရိုက်ပါ\",\"Unable to search the group\":\"အဖွဲ့အား ရှာဖွေ၍ မရနိုင်ပါ\",\"Write message, @ to mention someone …\":\"စာရေးသားရန်၊ တစ်စုံတစ်ဦးအား @ အသုံးပြု ရည်ညွှန်းရန်...\"}},{locale:\"nb_NO\",translations:{\"{tag} (invisible)\":\"{tag} (usynlig)\",\"{tag} (restricted)\":\"{tag} (beskyttet)\",Actions:\"Handlinger\",Activities:\"Aktiviteter\",\"Animals & Nature\":\"Dyr og natur\",\"Avatar of {displayName}\":\"Avataren til {displayName}\",\"Avatar of {displayName}, {status}\":\"{displayName}'s avatar, {status}\",\"Cancel changes\":\"Avbryt endringer\",\"Change title\":\"Endre tittel\",Choose:\"Velg\",Close:\"Lukk\",\"Close modal\":\"Lukk modal\",\"Close navigation\":\"Lukk navigasjon\",\"Close sidebar\":\"Lukk sidepanel\",\"Confirm changes\":\"Bekreft endringer\",Custom:\"Tilpasset\",\"Edit item\":\"Rediger\",\"External documentation for {title}\":\"Ekstern dokumentasjon for {title}\",Favorite:\"Favoritt\",Flags:\"Flagg\",\"Food & Drink\":\"Mat og drikke\",\"Frequently used\":\"Ofte brukt\",Global:\"Global\",\"Go back to the list\":\"Gå tilbake til listen\",items:\"enheter\",\"Message limit of {count} characters reached\":\"Karakter begrensing {count} nådd i melding\",\"More {dashboardItemType} …\":\"Mer {dashboardItemType} …\",Next:\"Neste\",\"No emoji found\":\"Fant ingen emoji\",\"No results\":\"Ingen resultater\",Objects:\"Objekter\",Open:\"Åpne\",\"Open navigation\":\"Åpne navigasjon\",\"Pause slideshow\":\"Pause lysbildefremvisning\",\"People & Body\":\"Mennesker og kropp\",\"Pick an emoji\":\"Velg en emoji\",\"Please select a time zone:\":\"Vennligst velg tidssone\",Previous:\"Forrige\",Search:\"Søk\",\"Search results\":\"Søkeresultater\",\"Select a tag\":\"Velg en merkelapp\",Settings:\"Innstillinger\",\"Settings navigation\":\"Navigasjonsinstillinger\",\"Smileys & Emotion\":\"Smilefjes og følelser\",\"Start slideshow\":\"Start lysbildefremvisning\",Submit:\"Send\",Symbols:\"Symboler\",\"Travel & Places\":\"Reise og steder\",\"Type to search time zone\":\"Tast for å søke etter tidssone\",\"Unable to search the group\":\"Kunne ikke søke i gruppen\",\"Undo changes\":\"Tilbakestill endringer\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Skriv melding, @ for å nevne noen, : for emoji-autofullføring…\"}},{locale:\"nl\",translations:{\"{tag} (invisible)\":\"{tag} (onzichtbaar)\",\"{tag} (restricted)\":\"{tag} (beperkt)\",Actions:\"Acties\",Activities:\"Activiteiten\",\"Animals & Nature\":\"Dieren & Natuur\",\"Avatar of {displayName}\":\"Avatar van {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar van {displayName}, {status}\",\"Cancel changes\":\"Wijzigingen annuleren\",Choose:\"Kies\",Close:\"Sluiten\",\"Close navigation\":\"Navigatie sluiten\",\"Confirm changes\":\"Wijzigingen bevestigen\",Custom:\"Aangepast\",\"Edit item\":\"Item bewerken\",\"External documentation for {title}\":\"Externe documentatie voor {title}\",Flags:\"Vlaggen\",\"Food & Drink\":\"Eten & Drinken\",\"Frequently used\":\"Vaak gebruikt\",Global:\"Globaal\",\"Go back to the list\":\"Ga terug naar de lijst\",\"Message limit of {count} characters reached\":\"Berichtlimiet van {count} karakters bereikt\",Next:\"Volgende\",\"No emoji found\":\"Geen emoji gevonden\",\"No results\":\"Geen resultaten\",Objects:\"Objecten\",\"Open navigation\":\"Navigatie openen\",\"Pause slideshow\":\"Pauzeer diavoorstelling\",\"People & Body\":\"Mensen & Lichaam\",\"Pick an emoji\":\"Kies een emoji\",\"Please select a time zone:\":\"Selecteer een tijdzone:\",Previous:\"Vorige\",Search:\"Zoeken\",\"Search results\":\"Zoekresultaten\",\"Select a tag\":\"Selecteer een label\",Settings:\"Instellingen\",\"Settings navigation\":\"Instellingen navigatie\",\"Smileys & Emotion\":\"Smileys & Emotie\",\"Start slideshow\":\"Start diavoorstelling\",Submit:\"Verwerken\",Symbols:\"Symbolen\",\"Travel & Places\":\"Reizen & Plaatsen\",\"Type to search time zone\":\"Type om de tijdzone te zoeken\",\"Unable to search the group\":\"Kan niet in de groep zoeken\",\"Undo changes\":\"Wijzigingen ongedaan maken\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Schrijf bericht, @ om iemand te noemen, : voor emoji auto-aanvullen ...\"}},{locale:\"oc\",translations:{\"{tag} (invisible)\":\"{tag} (invisible)\",\"{tag} (restricted)\":\"{tag} (limit)\",Actions:\"Accions\",Choose:\"Causir\",Close:\"Tampar\",Next:\"Seguent\",\"No results\":\"Cap de resultat\",\"Pause slideshow\":\"Metre en pausa lo diaporama\",Previous:\"Precedent\",\"Select a tag\":\"Seleccionar una etiqueta\",Settings:\"Paramètres\",\"Start slideshow\":\"Lançar lo diaporama\"}},{locale:\"pl\",translations:{\"{tag} (invisible)\":\"{tag} (niewidoczna)\",\"{tag} (restricted)\":\"{tag} (ograniczona)\",Actions:\"Działania\",Activities:\"Aktywność\",\"Animals & Nature\":\"Zwierzęta i natura\",\"Avatar of {displayName}\":\"Awatar {displayName}\",\"Avatar of {displayName}, {status}\":\"Awatar {displayName}, {status}\",\"Cancel changes\":\"Anuluj zmiany\",\"Change title\":\"Zmień tytuł\",Choose:\"Wybierz\",\"Clear text\":\"Wyczyść tekst\",Close:\"Zamknij\",\"Close modal\":\"Zamknij modal\",\"Close navigation\":\"Zamknij nawigację\",\"Close sidebar\":\"Zamknij pasek boczny\",\"Confirm changes\":\"Potwierdź zmiany\",Custom:\"Zwyczajne\",\"Edit item\":\"Edytuj element\",\"Error getting related resources\":\"Błąd podczas pobierania powiązanych zasobów\",\"External documentation for {title}\":\"Dokumentacja zewnętrzna dla {title}\",Favorite:\"Ulubiony\",Flags:\"Flagi\",\"Food & Drink\":\"Jedzenie i picie\",\"Frequently used\":\"Często używane\",Global:\"Globalnie\",\"Go back to the list\":\"Powrót do listy\",\"Hide password\":\"Ukryj hasło\",items:\"elementy\",\"Message limit of {count} characters reached\":\"Przekroczono limit wiadomości wynoszący {count} znaków\",\"More {dashboardItemType} …\":\"Więcej {dashboardItemType}…\",Next:\"Następny\",\"No emoji found\":\"Nie znaleziono emotikonów\",\"No results\":\"Brak wyników\",Objects:\"Obiekty\",Open:\"Otwórz\",'Open link to \"{resourceTitle}\"':'Otwórz link do \"{resourceTitle}\"',\"Open navigation\":\"Otwórz nawigację\",\"Password is secure\":\"Hasło jest bezpieczne\",\"Pause slideshow\":\"Wstrzymaj pokaz slajdów\",\"People & Body\":\"Ludzie i ciało\",\"Pick a date\":\"Wybierz datę\",\"Pick a date and a time\":\"Wybierz datę i godzinę\",\"Pick a month\":\"Wybierz miesiąc\",\"Pick a time\":\"Wybierz czas\",\"Pick a week\":\"Wybierz tydzień\",\"Pick a year\":\"Wybierz rok\",\"Pick an emoji\":\"Wybierz emoji\",\"Please select a time zone:\":\"Wybierz strefę czasową:\",Previous:\"Poprzedni\",\"Related resources\":\"Powiązane zasoby\",Search:\"Szukaj\",\"Search results\":\"Wyniki wyszukiwania\",\"Select a tag\":\"Wybierz etykietę\",Settings:\"Ustawienia\",\"Settings navigation\":\"Ustawienia nawigacji\",\"Show password\":\"Pokaż hasło\",\"Smileys & Emotion\":\"Buźki i emotikony\",\"Start slideshow\":\"Rozpocznij pokaz slajdów\",Submit:\"Wyślij\",Symbols:\"Symbole\",\"Travel & Places\":\"Podróże i miejsca\",\"Type to search time zone\":\"Wpisz, aby wyszukać strefę czasową\",\"Unable to search the group\":\"Nie można przeszukać grupy\",\"Undo changes\":\"Cofnij zmiany\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Napisz wiadomość, @ aby o kimś wspomnieć, : dla autouzupełniania emotikon…\"}},{locale:\"pt_BR\",translations:{\"{tag} (invisible)\":\"{tag} (invisível)\",\"{tag} (restricted)\":\"{tag} (restrito) \",Actions:\"Ações\",Activities:\"Atividades\",\"Animals & Nature\":\"Animais & Natureza\",\"Avatar of {displayName}\":\"Avatar de {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar de {displayName}, {status}\",\"Cancel changes\":\"Cancelar alterações\",\"Change title\":\"Alterar título\",Choose:\"Escolher\",Close:\"Fechar\",\"Close modal\":\"Fechar modal\",\"Close navigation\":\"Fechar navegação\",\"Close sidebar\":\"Fechar barra lateral\",\"Confirm changes\":\"Confirmar alterações\",Custom:\"Personalizado\",\"Edit item\":\"Editar item\",\"External documentation for {title}\":\"Documentação externa para {title}\",Favorite:\"Favorito\",Flags:\"Bandeiras\",\"Food & Drink\":\"Comida & Bebida\",\"Frequently used\":\"Mais usados\",Global:\"Global\",\"Go back to the list\":\"Volte para a lista\",items:\"itens\",\"Message limit of {count} characters reached\":\"Limite de mensagem de {count} caracteres atingido\",\"More {dashboardItemType} …\":\"Mais {dashboardItemType} …\",Next:\"Próximo\",\"No emoji found\":\"Nenhum emoji encontrado\",\"No results\":\"Sem resultados\",Objects:\"Objetos\",Open:\"Aberto\",\"Open navigation\":\"Abrir navegação\",\"Pause slideshow\":\"Pausar apresentação de slides\",\"People & Body\":\"Pessoas & Corpo\",\"Pick an emoji\":\"Escolha um emoji\",\"Please select a time zone:\":\"Selecione um fuso horário: \",Previous:\"Anterior\",Search:\"Pesquisar\",\"Search results\":\"Resultados da pesquisa\",\"Select a tag\":\"Selecionar uma tag\",Settings:\"Configurações\",\"Settings navigation\":\"Navegação de configurações\",\"Smileys & Emotion\":\"Smiles & Emoções\",\"Start slideshow\":\"Iniciar apresentação de slides\",Submit:\"Enviar\",Symbols:\"Símbolo\",\"Travel & Places\":\"Viagem & Lugares\",\"Type to search time zone\":\"Digite para pesquisar o fuso horário \",\"Unable to search the group\":\"Não foi possível pesquisar o grupo\",\"Undo changes\":\"Desfazer modificações\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Escreva mensagem, @ para mencionar alguém, : para autocompleção emoji...\"}},{locale:\"pt_PT\",translations:{\"{tag} (invisible)\":\"{tag} (invisivel)\",\"{tag} (restricted)\":\"{tag} (restrito)\",Actions:\"Ações\",Choose:\"Escolher\",Close:\"Fechar\",Next:\"Seguinte\",\"No results\":\"Sem resultados\",\"Pause slideshow\":\"Pausar diaporama\",Previous:\"Anterior\",\"Select a tag\":\"Selecionar uma etiqueta\",Settings:\"Definições\",\"Start slideshow\":\"Iniciar diaporama\",\"Unable to search the group\":\"Não é possível pesquisar o grupo\"}},{locale:\"ro\",translations:{\"{tag} (invisible)\":\"{tag} (invizibil)\",\"{tag} (restricted)\":\"{tag} (restricționat)\",Actions:\"Acțiuni\",Activities:\"Activități\",\"Animals & Nature\":\"Animale și natură\",\"Avatar of {displayName}\":\"Avatarul lui {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatarul lui {displayName}, {status}\",\"Cancel changes\":\"Anulează modificările\",\"Change title\":\"Modificați titlul\",Choose:\"Alegeți\",Close:\"Închideți\",\"Close modal\":\"Închideți modulul\",\"Close navigation\":\"Închideți navigarea\",\"Close sidebar\":\"Închide bara laterală\",\"Confirm changes\":\"Confirmați modificările\",Custom:\"Personalizat\",\"Edit item\":\"Editați elementul\",\"External documentation for {title}\":\"Documentație externă pentru {title}\",Favorite:\"Favorit\",Flags:\"Marcaje\",\"Food & Drink\":\"Alimente și băuturi\",\"Frequently used\":\"Utilizate frecvent\",Global:\"Global\",\"Go back to the list\":\"Întoarceți-vă la listă\",items:\"articole\",\"Message limit of {count} characters reached\":\"Limita mesajului de {count} caractere a fost atinsă\",\"More {dashboardItemType} …\":\"Mai multe {dashboardItemType} …\",Next:\"Următorul\",\"No emoji found\":\"Nu s-a găsit niciun emoji\",\"No results\":\"Nu există rezultate\",Objects:\"Obiecte\",Open:\"Deschideți\",\"Open navigation\":\"Deschideți navigația\",\"Pause slideshow\":\"Pauză prezentare de diapozitive\",\"People & Body\":\"Oameni și corp\",\"Pick an emoji\":\"Alege un emoji\",\"Please select a time zone:\":\"Vă rugăm să selectați un fus orar:\",Previous:\"Anterior\",Search:\"Căutare\",\"Search results\":\"Rezultatele căutării\",\"Select a tag\":\"Selectați o etichetă\",Settings:\"Setări\",\"Settings navigation\":\"Navigare setări\",\"Smileys & Emotion\":\"Zâmbete și emoții\",\"Start slideshow\":\"Începeți prezentarea de diapozitive\",Submit:\"Trimiteți\",Symbols:\"Simboluri\",\"Travel & Places\":\"Călătorii și locuri\",\"Type to search time zone\":\"Tastați pentru a căuta fusul orar\",\"Unable to search the group\":\"Imposibilitatea de a căuta în grup\",\"Undo changes\":\"Anularea modificărilor\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Scrieți un mesaj, @ pentru a menționa pe cineva, : pentru autocompletare emoji ...\"}},{locale:\"ru\",translations:{\"{tag} (invisible)\":\"{tag} (невидимое)\",\"{tag} (restricted)\":\"{tag} (ограниченное)\",Actions:\"Действия \",Activities:\"События\",\"Animals & Nature\":\"Животные и природа \",\"Avatar of {displayName}\":\"Аватар {displayName}\",\"Avatar of {displayName}, {status}\":\"Фотография {displayName}, {status}\",\"Cancel changes\":\"Отменить изменения\",Choose:\"Выберите\",Close:\"Закрыть\",\"Close modal\":\"Закрыть модальное окно\",\"Close navigation\":\"Закрыть навигацию\",\"Confirm changes\":\"Подтвердить изменения\",Custom:\"Пользовательское\",\"Edit item\":\"Изменить элемент\",\"External documentation for {title}\":\"Внешняя документация для {title}\",Flags:\"Флаги\",\"Food & Drink\":\"Еда, напиток\",\"Frequently used\":\"Часто используемый\",Global:\"Глобальный\",\"Go back to the list\":\"Вернуться к списку\",items:\"элементов\",\"Message limit of {count} characters reached\":\"Достигнуто ограничение на количество символов в {count}\",\"More {dashboardItemType} …\":\"Больше {dashboardItemType} …\",Next:\"Следующее\",\"No emoji found\":\"Эмодзи не найдено\",\"No results\":\"Результаты отсуствуют\",Objects:\"Объекты\",Open:\"Открыть\",\"Open navigation\":\"Открыть навигацию\",\"Pause slideshow\":\"Приостановить показ слйдов\",\"People & Body\":\"Люди и тело\",\"Pick an emoji\":\"Выберите эмодзи\",\"Please select a time zone:\":\"Пожалуйста, выберите часовой пояс:\",Previous:\"Предыдущее\",Search:\"Поиск\",\"Search results\":\"Результаты поиска\",\"Select a tag\":\"Выберите метку\",Settings:\"Параметры\",\"Settings navigation\":\"Навигация по настройкам\",\"Smileys & Emotion\":\"Смайлики и эмоции\",\"Start slideshow\":\"Начать показ слайдов\",Submit:\"Утвердить\",Symbols:\"Символы\",\"Travel & Places\":\"Путешествия и места\",\"Type to search time zone\":\"Введите для поиска часового пояса\",\"Unable to search the group\":\"Невозможно найти группу\",\"Undo changes\":\"Отменить изменения\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Напишите сообщение, @ - чтобы упомянуть кого-то, : - для автозаполнения эмодзи …\"}},{locale:\"sk_SK\",translations:{\"{tag} (invisible)\":\"{tag} (neviditeľný)\",\"{tag} (restricted)\":\"{tag} (obmedzený)\",Actions:\"Akcie\",Activities:\"Aktivity\",\"Animals & Nature\":\"Zvieratá a príroda\",\"Avatar of {displayName}\":\"Avatar {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar {displayName}, {status}\",\"Cancel changes\":\"Zrušiť zmeny\",Choose:\"Vybrať\",Close:\"Zatvoriť\",\"Close navigation\":\"Zavrieť navigáciu\",\"Confirm changes\":\"Potvrdiť zmeny\",Custom:\"Zvyk\",\"Edit item\":\"Upraviť položku\",\"External documentation for {title}\":\"Externá dokumentácia pre {title}\",Flags:\"Vlajky\",\"Food & Drink\":\"Jedlo a nápoje\",\"Frequently used\":\"Často používané\",Global:\"Globálne\",\"Go back to the list\":\"Naspäť na zoznam\",\"Message limit of {count} characters reached\":\"Limit správy na {count} znakov dosiahnutý\",Next:\"Ďalší\",\"No emoji found\":\"Nenašli sa žiadne emodži\",\"No results\":\"Žiadne výsledky\",Objects:\"Objekty\",\"Open navigation\":\"Otvoriť navigáciu\",\"Pause slideshow\":\"Pozastaviť prezentáciu\",\"People & Body\":\"Ľudia a telo\",\"Pick an emoji\":\"Vyberte si emodži\",\"Please select a time zone:\":\"Prosím vyberte časovú zónu:\",Previous:\"Predchádzajúci\",Search:\"Hľadať\",\"Search results\":\"Výsledky vyhľadávania\",\"Select a tag\":\"Vybrať štítok\",Settings:\"Nastavenia\",\"Settings navigation\":\"Navigácia v nastaveniach\",\"Smileys & Emotion\":\"Smajlíky a emócie\",\"Start slideshow\":\"Začať prezentáciu\",Submit:\"Odoslať\",Symbols:\"Symboly\",\"Travel & Places\":\"Cestovanie a miesta\",\"Type to search time zone\":\"Začníte písať pre vyhľadávanie časovej zóny\",\"Unable to search the group\":\"Skupinu sa nepodarilo nájsť\",\"Undo changes\":\"Vrátiť zmeny\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Napíšte správu, @ ak chcete niekoho spomenúť, : pre automatické dopĺňanie emotikonov…\"}},{locale:\"sl\",translations:{\"{tag} (invisible)\":\"{tag} (nevidno)\",\"{tag} (restricted)\":\"{tag} (omejeno)\",Actions:\"Dejanja\",Activities:\"Dejavnosti\",\"Animals & Nature\":\"Živali in Narava\",\"Avatar of {displayName}\":\"Podoba {displayName}\",\"Avatar of {displayName}, {status}\":\"Prikazna slika {displayName}, {status}\",\"Cancel changes\":\"Prekliči spremembe\",\"Change title\":\"Spremeni naziv\",Choose:\"Izbor\",\"Clear text\":\"Počisti besedilo\",Close:\"Zapri\",\"Close modal\":\"Zapri pojavno okno\",\"Close navigation\":\"Zapri krmarjenje\",\"Close sidebar\":\"Zapri stransko vrstico\",\"Confirm changes\":\"Potrdi spremembe\",Custom:\"Po meri\",\"Edit item\":\"Uredi predmet\",\"Error getting related resources\":\"Napaka pridobivanja povezanih virov\",\"External documentation for {title}\":\"Zunanja dokumentacija za {title}\",Favorite:\"Priljubljeno\",Flags:\"Zastavice\",\"Food & Drink\":\"Hrana in Pijača\",\"Frequently used\":\"Pogostost uporabe\",Global:\"Splošno\",\"Go back to the list\":\"Vrni se na seznam\",\"Hide password\":\"Skrij geslo\",\"Message limit of {count} characters reached\":\"Dosežena omejitev {count} znakov na sporočilo.\",\"More items …\":\"Več predmetov ...\",Next:\"Naslednji\",\"No emoji found\":\"Ni najdenih izraznih ikon\",\"No results\":\"Ni zadetkov\",Objects:\"Predmeti\",Open:\"Odpri\",'Open link to \"{resourceTitle}\"':\"Odpri povezavo do »{resourceTitle}«\",\"Open navigation\":\"Odpri krmarjenje\",\"Password is secure\":\"Geslo je varno\",\"Pause slideshow\":\"Ustavi predstavitev\",\"People & Body\":\"Ljudje in Telo\",\"Pick a date\":\"Izbor datuma\",\"Pick a date and a time\":\"Izbor datuma in časa\",\"Pick a month\":\"Izbor meseca\",\"Pick a time\":\"Izbor časa\",\"Pick a week\":\"Izbor tedna\",\"Pick a year\":\"Izbor leta\",\"Pick an emoji\":\"Izbor izrazne ikone\",\"Please select a time zone:\":\"Izbor časovnega pasu:\",Previous:\"Predhodni\",\"Related resources\":\"Povezani viri\",Search:\"Iskanje\",\"Search results\":\"Zadetki iskanja\",\"Select a tag\":\"Izbor oznake\",Settings:\"Nastavitve\",\"Settings navigation\":\"Krmarjenje nastavitev\",\"Show password\":\"Pokaži geslo\",\"Smileys & Emotion\":\"Izrazne ikone\",\"Start slideshow\":\"Začni predstavitev\",Submit:\"Pošlji\",Symbols:\"Simboli\",\"Travel & Places\":\"Potovanja in Kraji\",\"Type to search time zone\":\"Vpišite niz za iskanje časovnega pasu\",\"Unable to search the group\":\"Ni mogoče iskati po skupini\",\"Undo changes\":\"Razveljavi spremembe\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Napišite sporočilo, za omembo pred ime postavite@, začnite z : za vstavljanje izraznih ikon …\"}},{locale:\"sr\",translations:{\"{tag} (invisible)\":\"{tag} (nevidljivo)\",\"{tag} (restricted)\":\"{tag} (ograničeno)\",Actions:\"Radnje\",Activities:\"Aktivnosti\",\"Animals & Nature\":\"Životinje i Priroda\",\"Avatar of {displayName}\":\"Avatar za {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar za {displayName}, {status}\",\"Cancel changes\":\"Otkaži izmene\",\"Change title\":\"Izmeni naziv\",Choose:\"Изаберите\",Close:\"Затвори\",\"Close modal\":\"Zatvori modal\",\"Close navigation\":\"Zatvori navigaciju\",\"Close sidebar\":\"Zatvori bočnu traku\",\"Confirm changes\":\"Potvrdite promene\",Custom:\"Po meri\",\"Edit item\":\"Uredi stavku\",\"External documentation for {title}\":\"Eksterna dokumentacija za {title}\",Favorite:\"Omiljeni\",Flags:\"Zastave\",\"Food & Drink\":\"Hrana i Piće\",\"Frequently used\":\"Često korišćeno\",Global:\"Globalno\",\"Go back to the list\":\"Natrag na listu\",items:\"stavke\",\"Message limit of {count} characters reached\":\"Dostignuto je ograničenje za poruke od {count} znakova\",\"More {dashboardItemType} …\":\"Više {dashboardItemType} …\",Next:\"Следеће\",\"No emoji found\":\"Nije pronađen nijedan emodži\",\"No results\":\"Нема резултата\",Objects:\"Objekti\",Open:\"Otvori\",\"Open navigation\":\"Otvori navigaciju\",\"Pause slideshow\":\"Паузирај слајд шоу\",\"People & Body\":\"Ljudi i Telo\",\"Pick an emoji\":\"Izaberi emodži\",\"Please select a time zone:\":\"Molimo izaberite vremensku zonu:\",Previous:\"Претходно\",Search:\"Pretraži\",\"Search results\":\"Rezultati pretrage\",\"Select a tag\":\"Изаберите ознаку\",Settings:\"Поставке\",\"Settings navigation\":\"Navigacija u podešavanjima\",\"Smileys & Emotion\":\"Smajli i Emocije\",\"Start slideshow\":\"Покрени слајд шоу\",Submit:\"Prihvati\",Symbols:\"Simboli\",\"Travel & Places\":\"Putovanja i Mesta\",\"Type to search time zone\":\"Ukucaj da pretražiš vremenske zone\",\"Unable to search the group\":\"Nije moguće pretražiti grupu\",\"Undo changes\":\"Poništi promene\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Napišite poruku, @ da pomenete nekoga, : za automatsko dovršavanje emodžija…\"}},{locale:\"sv\",translations:{\"{tag} (invisible)\":\"{tag} (osynlig)\",\"{tag} (restricted)\":\"{tag} (begränsad)\",Actions:\"Åtgärder\",Activities:\"Aktiviteter\",\"Animals & Nature\":\"Djur & Natur\",\"Avatar of {displayName}\":\"{displayName}s avatar\",\"Avatar of {displayName}, {status}\":\"{displayName}s avatar, {status}\",\"Cancel changes\":\"Avbryt ändringar\",Choose:\"Välj\",Close:\"Stäng\",\"Close navigation\":\"Stäng navigering\",\"Confirm changes\":\"Bekräfta ändringar\",Custom:\"Anpassad\",\"Edit item\":\"Ändra\",\"External documentation for {title}\":\"Extern dokumentation för {title}\",Flags:\"Flaggor\",\"Food & Drink\":\"Mat & Dryck\",\"Frequently used\":\"Används ofta\",Global:\"Global\",\"Go back to the list\":\"Gå tillbaka till listan\",\"Message limit of {count} characters reached\":\"Meddelandegräns {count} tecken används\",Next:\"Nästa\",\"No emoji found\":\"Hittade inga emojis\",\"No results\":\"Inga resultat\",Objects:\"Objekt\",\"Open navigation\":\"Öppna navigering\",\"Pause slideshow\":\"Pausa bildspelet\",\"People & Body\":\"Kropp & Själ\",\"Pick an emoji\":\"Välj en emoji\",\"Please select a time zone:\":\"Välj tidszon:\",Previous:\"Föregående\",Search:\"Sök\",\"Search results\":\"Sökresultat\",\"Select a tag\":\"Välj en tag\",Settings:\"Inställningar\",\"Settings navigation\":\"Inställningsmeny\",\"Smileys & Emotion\":\"Selfies & Känslor\",\"Start slideshow\":\"Starta bildspelet\",Submit:\"Skicka\",Symbols:\"Symboler\",\"Travel & Places\":\"Resor & Sevärdigheter\",\"Type to search time zone\":\"Skriv för att välja tidszon\",\"Unable to search the group\":\"Kunde inte söka i gruppen\",\"Undo changes\":\"Ångra ändringar\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Skriv meddelande, @ för att nämna någon, : för automatiska emojiförslag ...\"}},{locale:\"tr\",translations:{\"{tag} (invisible)\":\"{tag} (görünmez)\",\"{tag} (restricted)\":\"{tag} (kısıtlı)\",Actions:\"İşlemler\",Activities:\"Etkinlikler\",\"Animals & Nature\":\"Hayvanlar ve Doğa\",\"Avatar of {displayName}\":\"{displayName} avatarı\",\"Avatar of {displayName}, {status}\":\"{displayName}, {status} avatarı\",\"Cancel changes\":\"Değişiklikleri iptal et\",\"Change title\":\"Başlığı değiştir\",Choose:\"Seçin\",\"Clear text\":\"Metni temizle\",Close:\"Kapat\",\"Close modal\":\"Üste açılan pencereyi kapat\",\"Close navigation\":\"Gezinmeyi kapat\",\"Close sidebar\":\"Yan çubuğu kapat\",\"Confirm changes\":\"Değişiklikleri onayla\",Custom:\"Özel\",\"Edit item\":\"Ögeyi düzenle\",\"Error getting related resources\":\"İlgili kaynaklar alınırken sorun çıktı\",\"External documentation for {title}\":\"{title} için dış belgeler\",Favorite:\"Sık kullanılanlara ekle\",Flags:\"Bayraklar\",\"Food & Drink\":\"Yeme ve İçme\",\"Frequently used\":\"Sık kullanılanlar\",Global:\"Evrensel\",\"Go back to the list\":\"Listeye dön\",\"Hide password\":\"Parolayı gizle\",items:\"ögeler\",\"Message limit of {count} characters reached\":\"{count} karakter ileti sınırına ulaşıldı\",\"More {dashboardItemType} …\":\"Diğer {dashboardItemType} ögeleri…\",Next:\"Sonraki\",\"No emoji found\":\"Herhangi bir emoji bulunamadı\",\"No results\":\"Herhangi bir sonuç bulunamadı\",Objects:\"Nesneler\",Open:\"Aç\",'Open link to \"{resourceTitle}\"':'\"{resourceTitle}\" bağlantısını aç',\"Open navigation\":\"Gezinmeyi aç\",\"Password is secure\":\"Parola güvenli\",\"Pause slideshow\":\"Slayt sunumunu duraklat\",\"People & Body\":\"İnsanlar ve Beden\",\"Pick a date\":\"Bir tarih seçin\",\"Pick a date and a time\":\"Bir tarih ve saat seçin\",\"Pick a month\":\"Bir ay seçin\",\"Pick a time\":\"Bir saat seçin\",\"Pick a week\":\"Bir hafta seçin\",\"Pick a year\":\"Bir yıl seçin\",\"Pick an emoji\":\"Bir emoji seçin\",\"Please select a time zone:\":\"Lütfen bir saat dilimi seçin:\",Previous:\"Önceki\",\"Related resources\":\"İlgili kaynaklar\",Search:\"Arama\",\"Search results\":\"Arama sonuçları\",\"Select a tag\":\"Bir etiket seçin\",Settings:\"Ayarlar\",\"Settings navigation\":\"Gezinme ayarları\",\"Show password\":\"Parolayı görüntüle\",\"Smileys & Emotion\":\"İfadeler ve Duygular\",\"Start slideshow\":\"Slayt sunumunu başlat\",Submit:\"Gönder\",Symbols:\"Simgeler\",\"Travel & Places\":\"Gezi ve Yerler\",\"Type to search time zone\":\"Saat dilimi aramak için yazmaya başlayın\",\"Unable to search the group\":\"Grupta arama yapılamadı\",\"Undo changes\":\"Değişiklikleri geri al\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"İleti yazın, birini anmak için @, otomatik emoji tamamlamak için : kullanın…\"}},{locale:\"uk\",translations:{\"{tag} (invisible)\":\"{tag} (невидимий)\",\"{tag} (restricted)\":\"{tag} (обмежений)\",Actions:\"Дії\",Activities:\"Діяльність\",\"Animals & Nature\":\"Тварини та природа\",\"Avatar of {displayName}\":\"Аватар {displayName}\",\"Avatar of {displayName}, {status}\":\"Аватар {displayName}, {status}\",\"Cancel changes\":\"Скасувати зміни\",\"Change title\":\"Змінити назву\",Choose:\"ВиберітьВиберіть\",\"Clear text\":\"Очистити текст\",Close:\"Закрити\",\"Close modal\":\"Закрити модаль\",\"Close navigation\":\"Закрити навігацію\",\"Close sidebar\":\"Закрити бічну панель\",\"Confirm changes\":\"Підтвердити зміни\",Custom:\"Власне\",\"Edit item\":\"Редагувати елемент\",\"External documentation for {title}\":\"Зовнішня документація для {title}\",Favorite:\"Улюблений\",Flags:\"Прапори\",\"Food & Drink\":\"Їжа та напої\",\"Frequently used\":\"Найчастіші\",Global:\"Глобальний\",\"Go back to the list\":\"Повернутися до списку\",\"Hide password\":\"Приховати пароль\",items:\"елементи\",\"Message limit of {count} characters reached\":\"Вичерпано ліміт у {count} символів для повідомлення\",\"More {dashboardItemType} …\":\"Більше {dashboardItemType}…\",Next:\"Вперед\",\"No emoji found\":\"Емоційки відсутні\",\"No results\":\"Відсутні результати\",Objects:\"Об'єкти\",Open:\"Відкрити\",\"Open navigation\":\"Відкрити навігацію\",\"Password is secure\":\"Пароль безпечний\",\"Pause slideshow\":\"Пауза у показі слайдів\",\"People & Body\":\"Люди та жести\",\"Pick an emoji\":\"Виберіть емоційку\",\"Please select a time zone:\":\"Виберіть часовий пояс:\",Previous:\"Назад\",Search:\"Пошук\",\"Search results\":\"Результати пошуку\",\"Select a tag\":\"Виберіть позначку\",Settings:\"Налаштування\",\"Settings navigation\":\"Навігація у налаштуваннях\",\"Show password\":\"Показати пароль\",\"Smileys & Emotion\":\"Смайли та емоції\",\"Start slideshow\":\"Почати показ слайдів\",Submit:\"Надіслати\",Symbols:\"Символи\",\"Travel & Places\":\"Поїздки та місця\",\"Type to search time zone\":\"Введіть для пошуку часовий пояс\",\"Unable to search the group\":\"Неможливо шукати в групі\",\"Undo changes\":\"Скасувати зміни\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"Напишіть повідомлення, @, щоб згадати когось, : для автозаповнення емодзі…\"}},{locale:\"zh_CN\",translations:{\"{tag} (invisible)\":\"{tag} (不可见)\",\"{tag} (restricted)\":\"{tag} (受限)\",Actions:\"行为\",Activities:\"活动\",\"Animals & Nature\":\"动物 & 自然\",\"Avatar of {displayName}\":\"{displayName}的头像\",\"Avatar of {displayName}, {status}\":\"{displayName}的头像,{status}\",\"Cancel changes\":\"取消更改\",Choose:\"选择\",Close:\"关闭\",\"Close navigation\":\"关闭导航\",\"Confirm changes\":\"确认更改\",Custom:\"自定义\",\"Edit item\":\"编辑项目\",\"External documentation for {title}\":\"{title}的外部文档\",Flags:\"旗帜\",\"Food & Drink\":\"食物 & 饮品\",\"Frequently used\":\"经常使用\",Global:\"全局\",\"Go back to the list\":\"返回至列表\",\"Message limit of {count} characters reached\":\"已达到 {count} 个字符的消息限制\",Next:\"下一个\",\"No emoji found\":\"表情未找到\",\"No results\":\"无结果\",Objects:\"物体\",\"Open navigation\":\"开启导航\",\"Pause slideshow\":\"暂停幻灯片\",\"People & Body\":\"人 & 身体\",\"Pick an emoji\":\"选择一个表情\",\"Please select a time zone:\":\"请选择一个时区:\",Previous:\"上一个\",Search:\"搜索\",\"Search results\":\"搜索结果\",\"Select a tag\":\"选择一个标签\",Settings:\"设置\",\"Settings navigation\":\"设置向导\",\"Smileys & Emotion\":\"笑脸 & 情感\",\"Start slideshow\":\"开始幻灯片\",Submit:\"提交\",Symbols:\"符号\",\"Travel & Places\":\"旅游 & 地点\",\"Type to search time zone\":\"打字以搜索时区\",\"Unable to search the group\":\"无法搜索分组\",\"Undo changes\":\"撤销更改\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"写信息,@ 提到某人,: 用于表情符号自动完成 ...\"}},{locale:\"zh_HK\",translations:{\"{tag} (invisible)\":\"{tag} (隱藏)\",\"{tag} (restricted)\":\"{tag} (受限)\",Actions:\"動作\",Activities:\"活動\",\"Animals & Nature\":\"動物與自然\",\"Avatar of {displayName}\":\"{displayName} 的頭像\",\"Avatar of {displayName}, {status}\":\"{displayName} 的頭像,{status}\",\"Cancel changes\":\"取消更改\",Choose:\"選擇\",Close:\"關閉\",\"Close modal\":\"關閉模態\",\"Close navigation\":\"關閉導航\",\"Confirm changes\":\"確認更改\",Custom:\"自定義\",\"Edit item\":\"編輯項目\",\"External documentation for {title}\":\"{title} 的外部文檔\",Flags:\"旗幟\",\"Food & Drink\":\"食物與飲料\",\"Frequently used\":\"經常使用\",Global:\"全球的\",\"Go back to the list\":\"返回清單\",items:\"項目\",\"Message limit of {count} characters reached\":\"已達到訊息最多 {count} 字元限制\",\"More {dashboardItemType} …\":\"更多 {dashboardItemType} …\",Next:\"下一個\",\"No emoji found\":\"未找到表情符號\",\"No results\":\"無結果\",Objects:\"物件\",\"Open navigation\":\"開啟導航\",\"Pause slideshow\":\"暫停幻燈片\",\"People & Body\":\"人物\",\"Pick an emoji\":\"選擇表情符號\",\"Please select a time zone:\":\"請選擇時區:\",Previous:\"上一個\",Search:\"搜尋\",\"Search results\":\"搜尋結果\",\"Select a tag\":\"選擇標籤\",Settings:\"設定\",\"Settings navigation\":\"設定值導覽\",\"Smileys & Emotion\":\"表情\",\"Start slideshow\":\"開始幻燈片\",Submit:\"提交\",Symbols:\"標誌\",\"Travel & Places\":\"旅遊與景點\",\"Type to search time zone\":\"鍵入以搜索時區\",\"Unable to search the group\":\"無法搜尋群組\",\"Undo changes\":\"取消更改\",\"Write message, @ to mention someone, : for emoji autocompletion …\":\"寫訊息,使用 @ 來指代某人,使用:用於表情符號自動填充 ...\"}},{locale:\"zh_TW\",translations:{\"{tag} (invisible)\":\"{tag} (隱藏)\",\"{tag} (restricted)\":\"{tag} (受限)\",Actions:\"動作\",Activities:\"活動\",\"Animals & Nature\":\"動物與自然\",Choose:\"選擇\",Close:\"關閉\",Custom:\"自定義\",Flags:\"旗幟\",\"Food & Drink\":\"食物與飲料\",\"Frequently used\":\"最近使用\",\"Message limit of {count} characters reached\":\"已達到訊息最多 {count} 字元限制\",Next:\"下一個\",\"No emoji found\":\"未找到表情符號\",\"No results\":\"無結果\",Objects:\"物件\",\"Pause slideshow\":\"暫停幻燈片\",\"People & Body\":\"人物\",\"Pick an emoji\":\"選擇表情符號\",Previous:\"上一個\",Search:\"搜尋\",\"Search results\":\"搜尋結果\",\"Select a tag\":\"選擇標籤\",Settings:\"設定\",\"Settings navigation\":\"設定值導覽\",\"Smileys & Emotion\":\"表情\",\"Start slideshow\":\"開始幻燈片\",Symbols:\"標誌\",\"Travel & Places\":\"旅遊與景點\",\"Unable to search the group\":\"無法搜尋群組\",\"Write message, @ to mention someone …\":\"輸入訊息時可使用 @ 來標示某人...\"}}].forEach((function(e){var t={};for(var a in e.translations)e.translations[a].pluralId?t[a]={msgid:a,msgid_plural:e.translations[a].pluralId,msgstr:e.translations[a].msgstr}:t[a]={msgid:a,msgstr:[e.translations[a]]};o.addTranslation(e.locale,{translations:{\"\":t}});}));var i=o.build(),n=(i.ngettext.bind(i),i.gettext.bind(i));},1205:function(e,t){t.Z=function(e){return Math.random().toString(36).replace(/[^a-z]+/g,\"\").slice(0,e||5)};},8384:function(e,t,a){var o=a(7537),i=a.n(o),n=a(3645),r=a.n(n)()(i());r.push([e.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.v-popper--theme-tooltip.v-popper__popper{position:absolute;z-index:100000;top:0;right:auto;left:auto;display:block;margin:0;padding:0;text-align:left;text-align:start;opacity:0;line-height:1.6;line-break:auto;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container{bottom:-10px;border-bottom-width:0;border-top-color:var(--color-main-background)}.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:-10px;border-top-width:0;border-bottom-color:var(--color-main-background)}.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container{right:100%;border-left-width:0;border-right-color:var(--color-main-background)}.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{left:100%;border-right-width:0;border-left-color:var(--color-main-background)}.v-popper--theme-tooltip.v-popper__popper[aria-hidden=true]{visibility:hidden;transition:opacity .15s,visibility .15s;opacity:0}.v-popper--theme-tooltip.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity .15s;opacity:1}.v-popper--theme-tooltip .v-popper__inner{max-width:350px;padding:5px 8px;text-align:center;color:var(--color-main-text);border-radius:var(--border-radius);background-color:var(--color-main-background)}.v-popper--theme-tooltip .v-popper__arrow-container{position:absolute;z-index:1;width:0;height:0;margin:0;border-style:solid;border-color:rgba(0,0,0,0);border-width:10px}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/directives/Tooltip/index.scss\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCQA,0CACC,iBAAA,CACA,cAAA,CACA,KAAA,CACA,UAAA,CACA,SAAA,CACA,aAAA,CACA,QAAA,CACA,SAAA,CACA,eAAA,CACA,gBAAA,CACA,SAAA,CACA,eAAA,CAEA,eAAA,CACA,sDAAA,CAGA,iGACC,YAAA,CACA,qBAAA,CACA,6CAAA,CAID,oGACC,SAAA,CACA,kBAAA,CACA,gDAAA,CAID,mGACC,UAAA,CACA,mBAAA,CACA,+CAAA,CAID,kGACC,SAAA,CACA,oBAAA,CACA,8CAAA,CAID,4DACC,iBAAA,CACA,uCAAA,CACA,SAAA,CAED,6DACC,kBAAA,CACA,uBAAA,CACA,SAAA,CAKF,0CACC,eAAA,CACA,eAAA,CACA,iBAAA,CACA,4BAAA,CACA,kCAAA,CACA,6CAAA,CAID,oDACC,iBAAA,CACA,SAAA,CACA,OAAA,CACA,QAAA,CACA,QAAA,CACA,kBAAA,CACA,0BAAA,CACA,iBAhFY\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"bb2125f\\\"; @import 'variables'; @import 'material-icons';\\n/**\\n* @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>\\n* @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl>\\n* @copyright Copyright (c) 2016, Jan-Christoph Borchardt <hey@jancborchardt.net>\\n* @copyright Copyright (c) 2016, Erik Pellikka <erik@pellikka.org>\\n* @copyright Copyright (c) 2015, Vincent Petry <pvince81@owncloud.com>\\n*\\n* Bootstrap v3.3.5 (http://getbootstrap.com)\\n* Copyright 2011-2015 Twitter, Inc.\\n* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\n*/\\n\\n$arrow-width: 10px;\\n\\n.v-popper--theme-tooltip {\\n\\t&.v-popper__popper {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 100000;\\n\\t\\ttop: 0;\\n\\t\\tright: auto;\\n\\t\\tleft: auto;\\n\\t\\tdisplay: block;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\ttext-align: left;\\n\\t\\ttext-align: start;\\n\\t\\topacity: 0;\\n\\t\\tline-height: 1.6;\\n\\n\\t\\tline-break: auto;\\n\\t\\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\\n\\n\\t\\t// TOP\\n\\t\\t&[data-popper-placement^='top'] .v-popper__arrow-container {\\n\\t\\t\\tbottom: -$arrow-width;\\n\\t\\t\\tborder-bottom-width: 0;\\n\\t\\t\\tborder-top-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t// BOTTOM\\n\\t\\t&[data-popper-placement^='bottom'] .v-popper__arrow-container {\\n\\t\\t\\ttop: -$arrow-width;\\n\\t\\t\\tborder-top-width: 0;\\n\\t\\t\\tborder-bottom-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t// RIGHT\\n\\t\\t&[data-popper-placement^='right'] .v-popper__arrow-container {\\n\\t\\t\\tright: 100%;\\n\\t\\t\\tborder-left-width: 0;\\n\\t\\t\\tborder-right-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t// LEFT\\n\\t\\t&[data-popper-placement^='left'] .v-popper__arrow-container {\\n\\t\\t\\tleft: 100%;\\n\\t\\t\\tborder-right-width: 0;\\n\\t\\t\\tborder-left-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t// HIDDEN / SHOWN\\n\\t\\t&[aria-hidden='true'] {\\n\\t\\t\\tvisibility: hidden;\\n\\t\\t\\ttransition: opacity .15s, visibility .15s;\\n\\t\\t\\topacity: 0;\\n\\t\\t}\\n\\t\\t&[aria-hidden='false'] {\\n\\t\\t\\tvisibility: visible;\\n\\t\\t\\ttransition: opacity .15s;\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t// CONTENT\\n\\t.v-popper__inner {\\n\\t\\tmax-width: 350px;\\n\\t\\tpadding: 5px 8px;\\n\\t\\ttext-align: center;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t}\\n\\n\\t// ARROW\\n\\t.v-popper__arrow-container {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 1;\\n\\t\\twidth: 0;\\n\\t\\theight: 0;\\n\\t\\tmargin: 0;\\n\\t\\tborder-style: solid;\\n\\t\\tborder-color: transparent;\\n\\t\\tborder-width: $arrow-width;\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]),t.Z=r;},2810:function(e,t,a){var o=a(7537),i=a.n(o),n=a(3645),r=a.n(n)()(i());r.push([e.id,\".material-design-icon[data-v-7a49ed06]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-items[data-v-7a49ed06]{display:flex;align-items:center}.action-item[data-v-7a49ed06]{--open-background-color: var(--color-background-hover, $action-background-hover);position:relative;display:inline-block}.action-item.action-item--primary[data-v-7a49ed06]{--open-background-color: var(--color-primary-element-hover)}.action-item.action-item--secondary[data-v-7a49ed06]{--open-background-color: var(--color-primary-light-hover)}.action-item.action-item--error[data-v-7a49ed06]{--open-background-color: var(--color-error-hover)}.action-item.action-item--warning[data-v-7a49ed06]{--open-background-color: var(--color-warning-hover)}.action-item.action-item--success[data-v-7a49ed06]{--open-background-color: var(--color-success-hover)}.action-item.action-item--open .action-item__menutoggle[data-v-7a49ed06]{opacity:1;background-color:var(--open-background-color)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcActions/NcActions.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,+BACC,YAAA,CACA,kBAAA,CAGD,8BACC,gFAAA,CACA,iBAAA,CACA,oBAAA,CAEA,mDACC,2DAAA,CAGD,qDACC,yDAAA,CAGD,iDACC,iDAAA,CAGD,mDACC,mDAAA,CAGD,mDACC,mDAAA,CAGD,yEACC,SCWa,CDVb,6CAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"bb2125f\\\"; @import 'variables'; @import 'material-icons';\\n\\n.action-items {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n}\\n\\n.action-item {\\n\\t--open-background-color: var(--color-background-hover, $action-background-hover);\\n\\tposition: relative;\\n\\tdisplay: inline-block;\\n\\n\\t&.action-item--primary {\\n\\t\\t--open-background-color: var(--color-primary-element-hover);\\n\\t}\\n\\n\\t&.action-item--secondary {\\n\\t\\t--open-background-color: var(--color-primary-light-hover);\\n\\t}\\n\\n\\t&.action-item--error {\\n\\t\\t--open-background-color: var(--color-error-hover);\\n\\t}\\n\\n\\t&.action-item--warning {\\n\\t\\t--open-background-color: var(--color-warning-hover);\\n\\t}\\n\\n\\t&.action-item--success {\\n\\t\\t--open-background-color: var(--color-success-hover);\\n\\t}\\n\\n\\t&.action-item--open .action-item__menutoggle {\\n\\t\\topacity: $opacity_full;\\n\\t\\tbackground-color: var(--open-background-color);\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\"],sourceRoot:\"\"}]),t.Z=r;},8582:function(e,t,a){var o=a(7537),i=a.n(o),n=a(3645),r=a.n(n)()(i());r.push([e.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.v-popper--theme-dropdown.v-popper__popper.action-item__popper .v-popper__inner{border-radius:var(--border-radius-large);padding:4px;max-height:calc(100vh - 16px);overflow:auto}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcActions/NcActions.vue\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,gFACC,wCAAA,CACA,WAAA,CACA,6BAAA,CACA,aAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"bb2125f\\\"; @import 'variables'; @import 'material-icons';\\n\\n// We overwrote the popover base class, so we can style\\n// the popover__inner for actions only.\\n.v-popper--theme-dropdown.v-popper__popper.action-item__popper .v-popper__inner {\\n\\tborder-radius: var(--border-radius-large);\\n\\tpadding: 4px;\\n\\tmax-height: calc(100vh - 16px);\\n\\toverflow: auto;\\n}\\n\"],sourceRoot:\"\"}]),t.Z=r;},7190:function(e,t,a){var o=a(7537),i=a.n(o),n=a(3645),r=a.n(n)()(i());r.push([e.id,\".material-design-icon[data-v-7a8f3349]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-7a8f3349]{position:relative;width:fit-content;overflow:hidden;border:0;padding:0;font-size:var(--default-font-size);font-weight:bold;min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:22px;transition:background-color .1s linear !important;transition:border .1s linear;background-color:var(--color-primary-element-lighter);color:var(--color-primary-light-text)}.button-vue *[data-v-7a8f3349]{cursor:pointer}.button-vue[data-v-7a8f3349]:focus{outline:none}.button-vue[data-v-7a8f3349]:disabled{cursor:default;opacity:.5;filter:saturate(0.7)}.button-vue:disabled *[data-v-7a8f3349]{cursor:default}.button-vue[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color-primary-light-hover)}.button-vue[data-v-7a8f3349]:active{background-color:var(--color-primary-element-lighter)}.button-vue__wrapper[data-v-7a8f3349]{display:inline-flex;align-items:center;justify-content:space-around}.button-vue__icon[data-v-7a8f3349]{height:44px;width:44px;min-height:44px;min-width:44px;display:flex;justify-content:center;align-items:center}.button-vue__text[data-v-7a8f3349]{font-weight:bold;margin-bottom:1px;padding:2px 0}.button-vue--icon-only[data-v-7a8f3349]{width:44px !important}.button-vue--text-only[data-v-7a8f3349]{padding:0 12px}.button-vue--text-only .button-vue__text[data-v-7a8f3349]{margin-left:4px;margin-right:4px}.button-vue--icon-and-text[data-v-7a8f3349]{padding:0 16px 0 4px}.button-vue--wide[data-v-7a8f3349]{width:100%}.button-vue[data-v-7a8f3349]:focus-visible{outline:2px solid var(--color-main-text) !important}.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-7a8f3349]{outline:2px solid var(--color-primary-text);border-radius:var(--border-radius);background-color:rgba(0,0,0,0)}.button-vue--vue-primary[data-v-7a8f3349]{background-color:var(--color-primary-element);color:var(--color-primary-text)}.button-vue--vue-primary[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color-primary-element-hover)}.button-vue--vue-primary[data-v-7a8f3349]:active{background-color:var(--color-primary-element)}.button-vue--vue-secondary[data-v-7a8f3349]{color:var(--color-primary-light-text);background-color:var(--color-primary-light)}.button-vue--vue-secondary[data-v-7a8f3349]:hover:not(:disabled){color:var(--color-primary-light-text);background-color:var(--color-primary-light-hover)}.button-vue--vue-tertiary[data-v-7a8f3349]{color:var(--color-main-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color);background-color:var(--color-background-hover)}.button-vue--vue-tertiary-no-background[data-v-7a8f3349]{color:var(--color-main-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-no-background[data-v-7a8f3349]:hover:not(:disabled){background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-on-primary[data-v-7a8f3349]{color:var(--color-primary-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-on-primary[data-v-7a8f3349]:hover:not(:disabled){background-color:rgba(0,0,0,0)}.button-vue--vue-success[data-v-7a8f3349]{background-color:var(--color-success);color:#fff}.button-vue--vue-success[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color-success-hover)}.button-vue--vue-success[data-v-7a8f3349]:active{background-color:var(--color-success)}.button-vue--vue-warning[data-v-7a8f3349]{background-color:var(--color-warning);color:#fff}.button-vue--vue-warning[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color-warning-hover)}.button-vue--vue-warning[data-v-7a8f3349]:active{background-color:var(--color-warning)}.button-vue--vue-error[data-v-7a8f3349]{background-color:var(--color-error);color:#fff}.button-vue--vue-error[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color-error-hover)}.button-vue--vue-error[data-v-7a8f3349]:active{background-color:var(--color-error)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcButton/NcButton.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,6BACC,iBAAA,CACA,iBAAA,CACA,eAAA,CACA,QAAA,CACA,SAAA,CACA,kCAAA,CACA,gBAAA,CACA,eCcgB,CDbhB,cCagB,CDZhB,YAAA,CACA,kBAAA,CACA,sBAAA,CAGA,cAAA,CAIA,kBAAA,CACA,iDAAA,CACA,4BAAA,CAkBA,qDAAA,CACA,qCAAA,CAxBA,+BACC,cAAA,CAOD,mCACC,YAAA,CAGD,sCACC,cAAA,CAIA,UCMiB,CDJjB,oBAAA,CALA,wCACC,cAAA,CAUF,kDACC,iDAAA,CAKD,oCACC,qDAAA,CAGD,sCACC,mBAAA,CACA,kBAAA,CACA,4BAAA,CAGD,mCACC,WCpCe,CDqCf,UCrCe,CDsCf,eCtCe,CDuCf,cCvCe,CDwCf,YAAA,CACA,sBAAA,CACA,kBAAA,CAGD,mCACC,gBAAA,CACA,iBAAA,CACA,aAAA,CAID,wCACC,qBAAA,CAID,wCACC,cAAA,CACA,0DACC,eAAA,CACA,gBAAA,CAKF,4CACC,oBAAA,CAID,mCACC,UAAA,CAGD,2CACC,mDAAA,CACA,+EACC,2CAAA,CACA,kCAAA,CACA,8BAAA,CAOF,0CACC,6CAAA,CACA,+BAAA,CACA,+DACC,mDAAA,CAID,iDACC,6CAAA,CAKF,4CACC,qCAAA,CACA,2CAAA,CACA,iEACC,qCAAA,CACA,iDAAA,CAKF,2CACC,4BAAA,CACA,8BAAA,CACA,gEACC,6BAAA,CACA,8CAAA,CAKF,yDACC,4BAAA,CACA,8BAAA,CACA,8EACC,8BAAA,CAKF,sDACC,+BAAA,CACA,8BAAA,CAEA,2EACC,8BAAA,CAKF,0CACC,qCAAA,CACA,UAAA,CACA,+DACC,2CAAA,CAID,iDACC,qCAAA,CAKF,0CACC,qCAAA,CACA,UAAA,CACA,+DACC,2CAAA,CAID,iDACC,qCAAA,CAKF,wCACC,mCAAA,CACA,UAAA,CACA,6DACC,yCAAA,CAID,+CACC,mCAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"bb2125f\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.button-vue {\\n\\tposition: relative;\\n\\twidth: fit-content;\\n\\toverflow: hidden;\\n\\tborder: 0;\\n\\tpadding: 0;\\n\\tfont-size: var(--default-font-size);\\n\\tfont-weight: bold;\\n\\tmin-height: $clickable-area;\\n\\tmin-width: $clickable-area;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\n\\t// Cursor pointer on element and all children\\n\\tcursor: pointer;\\n\\t& * {\\n\\t\\tcursor: pointer;\\n\\t}\\n\\tborder-radius: math.div($clickable-area, 2);\\n\\ttransition: background-color 0.1s linear !important;\\n\\ttransition: border 0.1s linear;\\n\\n\\t// No outline feedback for focus. Handled with a toggled class in js (see data)\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t&:disabled {\\n\\t\\tcursor: default;\\n\\t\\t& * {\\n\\t\\t\\tcursor: default;\\n\\t\\t}\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t// Gives a wash out effect\\n\\t\\tfilter: saturate($opacity_normal);\\n\\t}\\n\\n\\t// Default button type\\n\\tbackground-color: var(--color-primary-element-lighter);\\n\\tcolor: var(--color-primary-light-text);\\n\\t&:hover:not(:disabled) {\\n\\t\\tbackground-color: var(--color-primary-light-hover);\\n\\t}\\n\\n\\t// Back to the default color for this button when active\\n\\t// TODO: add ripple effect\\n\\t&:active {\\n\\t\\tbackground-color: var(--color-primary-element-lighter);\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tdisplay: inline-flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: space-around;\\n\\t}\\n\\n\\t&__icon {\\n\\t\\theight: $clickable-area;\\n\\t\\twidth: $clickable-area;\\n\\t\\tmin-height: $clickable-area;\\n\\t\\tmin-width: $clickable-area;\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\talign-items: center;\\n\\t}\\n\\n\\t&__text {\\n\\t\\tfont-weight: bold;\\n\\t\\tmargin-bottom: 1px;\\n\\t\\tpadding: 2px 0;\\n\\t}\\n\\n\\t// Icon-only button\\n\\t&--icon-only {\\n\\t\\twidth: $clickable-area !important;\\n\\t}\\n\\n\\t// Text-only button\\n\\t&--text-only {\\n\\t\\tpadding: 0 12px;\\n\\t\\t& .button-vue__text {\\n\\t\\t\\tmargin-left: 4px;\\n\\t\\t\\tmargin-right: 4px;\\n\\t\\t}\\n\\t}\\n\\n\\t// Icon and text button\\n\\t&--icon-and-text {\\n\\t\\tpadding: 0 16px 0 4px;\\n\\t}\\n\\n\\t// Wide button spans the whole width of the container\\n\\t&--wide {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t&:focus-visible {\\n\\t\\toutline: 2px solid var(--color-main-text) !important;\\n\\t\\t&.button-vue--vue-tertiary-on-primary {\\n\\t\\t\\toutline: 2px solid var(--color-primary-text);\\n\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// Button types\\n\\n\\t// Primary\\n\\t&--vue-primary {\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\tcolor: var(--color-primary-text);\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color-primary-element-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// TODO: add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t}\\n\\t}\\n\\n\\t// Secondary\\n\\t&--vue-secondary {\\n\\t\\tcolor: var(--color-primary-light-text);\\n\\t\\tbackground-color: var(--color-primary-light);\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tcolor: var(--color-primary-light-text);\\n\\t\\t\\tbackground-color: var(--color-primary-light-hover);\\n\\t\\t}\\n\\t}\\n\\n\\t// Tertiary\\n\\t&--vue-tertiary {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tbackground-color: transparent;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color);\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t}\\n\\n\\t// Tertiary, no background\\n\\t&--vue-tertiary-no-background {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tbackground-color: transparent;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// Tertiary on primary color (like the header)\\n\\t&--vue-tertiary-on-primary {\\n\\t\\tcolor: var(--color-primary-text);\\n\\t\\tbackground-color: transparent;\\n\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// Success\\n\\t&--vue-success {\\n\\t\\tbackground-color: var(--color-success);\\n\\t\\tcolor: white;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color-success-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// : add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-success);\\n\\t\\t}\\n\\t}\\n\\n\\t// Warning\\n\\t&--vue-warning {\\n\\t\\tbackground-color: var(--color-warning);\\n\\t\\tcolor: white;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color-warning-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// TODO: add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-warning);\\n\\t\\t}\\n\\t}\\n\\n\\t// Error\\n\\t&--vue-error {\\n\\t\\tbackground-color: var(--color-error);\\n\\t\\tcolor: white;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color-error-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// TODO: add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-error);\\n\\t\\t}\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\"],sourceRoot:\"\"}]),t.Z=r;},8985:function(e,t,a){var o=a(7537),i=a.n(o),n=a(3645),r=a.n(n)()(i());r.push([e.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.resize-observer{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:rgba(0,0,0,0);pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.v-popper--theme-dropdown.v-popper__popper{z-index:100000;top:0;left:0;display:block !important;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.v-popper--theme-dropdown.v-popper__popper .v-popper__inner{padding:0;color:var(--color-main-text);border-radius:var(--border-radius);overflow:hidden;background:var(--color-main-background)}.v-popper--theme-dropdown.v-popper__popper .v-popper__arrow-container{position:absolute;z-index:1;width:0;height:0;border-style:solid;border-color:rgba(0,0,0,0);border-width:10px}.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container{bottom:-10px;border-bottom-width:0;border-top-color:var(--color-main-background)}.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:-10px;border-top-width:0;border-bottom-color:var(--color-main-background)}.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container{left:-10px;border-left-width:0;border-right-color:var(--color-main-background)}.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px;border-right-width:0;border-left-color:var(--color-main-background)}.v-popper--theme-dropdown.v-popper__popper[aria-hidden=true]{visibility:hidden;transition:opacity var(--animation-quick),visibility var(--animation-quick);opacity:0}.v-popper--theme-dropdown.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity var(--animation-quick);opacity:1}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcPopover/NcPopover.vue\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,iBACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,UAAA,CACA,WAAA,CACA,WAAA,CACA,8BAAA,CACA,mBAAA,CACA,aAAA,CACA,eAAA,CACA,SAAA,CAGD,wBACC,aAAA,CACA,iBAAA,CACA,KAAA,CACA,MAAA,CACA,WAAA,CACA,UAAA,CACA,eAAA,CACA,mBAAA,CACA,UAAA,CAMA,2CACC,cAAA,CACA,KAAA,CACA,MAAA,CACA,wBAAA,CAEA,sDAAA,CAEA,4DACC,SAAA,CACA,4BAAA,CACA,kCAAA,CACA,eAAA,CACA,uCAAA,CAGD,sEACC,iBAAA,CACA,SAAA,CACA,OAAA,CACA,QAAA,CACA,kBAAA,CACA,0BAAA,CACA,iBA1BW,CA6BZ,kGACC,YAAA,CACA,qBAAA,CACA,6CAAA,CAGD,qGACC,SAAA,CACA,kBAAA,CACA,gDAAA,CAGD,oGACC,UAAA,CACA,mBAAA,CACA,+CAAA,CAGD,mGACC,WAAA,CACA,oBAAA,CACA,8CAAA,CAGD,6DACC,iBAAA,CACA,2EAAA,CACA,SAAA,CAGD,8DACC,kBAAA,CACA,yCAAA,CACA,SAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"bb2125f\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.resize-observer {\\n\\tposition:absolute;\\n\\ttop:0;\\n\\tleft:0;\\n\\tz-index:-1;\\n\\twidth:100%;\\n\\theight:100%;\\n\\tborder:none;\\n\\tbackground-color:transparent;\\n\\tpointer-events:none;\\n\\tdisplay:block;\\n\\toverflow:hidden;\\n\\topacity:0\\n}\\n\\n.resize-observer object {\\n\\tdisplay:block;\\n\\tposition:absolute;\\n\\ttop:0;\\n\\tleft:0;\\n\\theight:100%;\\n\\twidth:100%;\\n\\toverflow:hidden;\\n\\tpointer-events:none;\\n\\tz-index:-1\\n}\\n\\n$arrow-width: 10px;\\n\\n.v-popper--theme-dropdown {\\n\\t&.v-popper__popper {\\n\\t\\tz-index: 100000;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t\\tdisplay: block !important;\\n\\n\\t\\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\\n\\n\\t\\t.v-popper__inner {\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\tbackground: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t.v-popper__arrow-container {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tz-index: 1;\\n\\t\\t\\twidth: 0;\\n\\t\\t\\theight: 0;\\n\\t\\t\\tborder-style: solid;\\n\\t\\t\\tborder-color: transparent;\\n\\t\\t\\tborder-width: $arrow-width;\\n\\t\\t}\\n\\n\\t\\t&[data-popper-placement^='top'] .v-popper__arrow-container {\\n\\t\\t\\tbottom: -$arrow-width;\\n\\t\\t\\tborder-bottom-width: 0;\\n\\t\\t\\tborder-top-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t&[data-popper-placement^='bottom'] .v-popper__arrow-container {\\n\\t\\t\\ttop: -$arrow-width;\\n\\t\\t\\tborder-top-width: 0;\\n\\t\\t\\tborder-bottom-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t&[data-popper-placement^='right'] .v-popper__arrow-container {\\n\\t\\t\\tleft: -$arrow-width;\\n\\t\\t\\tborder-left-width: 0;\\n\\t\\t\\tborder-right-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t&[data-popper-placement^='left'] .v-popper__arrow-container {\\n\\t\\t\\tright: -$arrow-width;\\n\\t\\t\\tborder-right-width: 0;\\n\\t\\t\\tborder-left-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t&[aria-hidden='true'] {\\n\\t\\t\\tvisibility: hidden;\\n\\t\\t\\ttransition: opacity var(--animation-quick), visibility var(--animation-quick);\\n\\t\\t\\topacity: 0;\\n\\t\\t}\\n\\n\\t\\t&[aria-hidden='false'] {\\n\\t\\t\\tvisibility: visible;\\n\\t\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]),t.Z=r;},3645:function(e){e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var a=\"\",o=void 0!==t[5];return t[4]&&(a+=\"@supports (\".concat(t[4],\") {\")),t[2]&&(a+=\"@media \".concat(t[2],\" {\")),o&&(a+=\"@layer\".concat(t[5].length>0?\" \".concat(t[5]):\"\",\" {\")),a+=e(t),o&&(a+=\"}\"),t[2]&&(a+=\"}\"),t[4]&&(a+=\"}\"),a})).join(\"\")},t.i=function(e,a,o,i,n){\"string\"==typeof e&&(e=[[null,e,void 0]]);var r={};if(o)for(var s=0;s<this.length;s++){var l=this[s][0];null!=l&&(r[l]=!0);}for(var c=0;c<e.length;c++){var u=[].concat(e[c]);o&&r[u[0]]||(void 0!==n&&(void 0===u[5]||(u[1]=\"@layer\".concat(u[5].length>0?\" \".concat(u[5]):\"\",\" {\").concat(u[1],\"}\")),u[5]=n),a&&(u[2]?(u[1]=\"@media \".concat(u[2],\" {\").concat(u[1],\"}\"),u[2]=a):u[2]=a),i&&(u[4]?(u[1]=\"@supports (\".concat(u[4],\") {\").concat(u[1],\"}\"),u[4]=i):u[4]=\"\".concat(i)),t.push(u));}},t};},7537:function(e){e.exports=function(e){var t=e[1],a=e[3];if(!a)return t;if(\"function\"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(a)))),i=\"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(o),n=\"/*# \".concat(i,\" */\"),r=a.sources.map((function(e){return \"/*# sourceURL=\".concat(a.sourceRoot||\"\").concat(e,\" */\")}));return [t].concat(r).concat([n]).join(\"\\n\")}return [t].join(\"\\n\")};},3379:function(e){var t=[];function a(e){for(var a=-1,o=0;o<t.length;o++)if(t[o].identifier===e){a=o;break}return a}function o(e,o){for(var n={},r=[],s=0;s<e.length;s++){var l=e[s],c=o.base?l[0]+o.base:l[0],u=n[c]||0,d=\"\".concat(c,\" \").concat(u);n[c]=u+1;var m=a(d),p={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==m)t[m].references++,t[m].updater(p);else {var g=i(p,o);o.byIndex=s,t.splice(s,0,{identifier:d,updater:g,references:1});}r.push(d);}return r}function i(e,t){var a=t.domAPI(t);return a.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;a.update(e=t);}else a.remove();}}e.exports=function(e,i){var n=o(e=e||[],i=i||{});return function(e){e=e||[];for(var r=0;r<n.length;r++){var s=a(n[r]);t[s].references--;}for(var l=o(e,i),c=0;c<n.length;c++){var u=a(n[c]);0===t[u].references&&(t[u].updater(),t.splice(u,1));}n=l;}};},569:function(e){var t={};e.exports=function(e,a){var o=function(e){if(void 0===t[e]){var a=document.querySelector(e);if(window.HTMLIFrameElement&&a instanceof window.HTMLIFrameElement)try{a=a.contentDocument.head;}catch(e){a=null;}t[e]=a;}return t[e]}(e);if(!o)throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");o.appendChild(a);};},9216:function(e){e.exports=function(e){var t=document.createElement(\"style\");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t};},3565:function(e,t,a){e.exports=function(e){var t=a.nc;t&&e.setAttribute(\"nonce\",t);};},7795:function(e){e.exports=function(e){var t=e.insertStyleElement(e);return {update:function(a){!function(e,t,a){var o=\"\";a.supports&&(o+=\"@supports (\".concat(a.supports,\") {\")),a.media&&(o+=\"@media \".concat(a.media,\" {\"));var i=void 0!==a.layer;i&&(o+=\"@layer\".concat(a.layer.length>0?\" \".concat(a.layer):\"\",\" {\")),o+=a.css,i&&(o+=\"}\"),a.media&&(o+=\"}\"),a.supports&&(o+=\"}\");var n=a.sourceMap;n&&\"undefined\"!=typeof btoa&&(o+=\"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(n)))),\" */\")),t.styleTagTransform(o,e,t.options);}(t,e,a);},remove:function(){!function(e){if(null===e.parentNode)return !1;e.parentNode.removeChild(e);}(t);}}};},4589:function(e){e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else {for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e));}};},5727:function(){},2102:function(){},2405:function(){},1900:function(e,t,a){function o(e,t,a,o,i,n,r,s){var l,c=\"function\"==typeof e?e.options:e;if(t&&(c.render=t,c.staticRenderFns=a,c._compiled=!0),o&&(c.functional=!0),n&&(c._scopeId=\"data-v-\"+n),r?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(r);},c._ssrRegister=l):i&&(l=s?function(){i.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot);}:i),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(e,t){return l.call(t),u(e,t)};}else {var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,l):[l];}return {exports:e,options:c}}a.d(t,{Z:function(){return o}});},754:function(e){e.exports=requireGettext();},9454:function(e){e.exports=require$$1;},4505:function(e){e.exports=require$$2;},2734:function(e){e.exports=requireVue_runtime_common();},1441:function(e){e.exports=require$$4;}},t={};function a(o){var i=t[o];if(void 0!==i)return i.exports;var n=t[o]={id:o,exports:{}};return e[o](n,n.exports,a),n.exports}a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,{a:t}),t},a.d=function(e,t){for(var o in t)a.o(t,o)&&!a.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]});},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0});},a.nc=void 0;var o={};return function(){a.r(o),a.d(o,{default:function(){return M}});var e=a(8399),t=a(1481),i=a(336),n=a(1205),r=a(932),s=a(2734),l=a.n(s),c=a(1441),u=a.n(c);function d(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,o);}return a}function m(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?d(Object(a),!0).forEach((function(t){p(e,t,a[t]);})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):d(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t));}));}return e}function p(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function g(e){return function(e){if(Array.isArray(e))return A(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,t){if(e){if(\"string\"==typeof e)return A(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return \"Object\"===a&&e.constructor&&(a=e.constructor.name),\"Map\"===a||\"Set\"===a?Array.from(e):\"Arguments\"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?A(e,t):void 0}}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,o=new Array(t);a<t;a++)o[a]=e[a];return o}var v=\".focusable\",h={name:\"NcActions\",directives:{tooltip:i.default},components:{NcButton:e.default,DotsHorizontal:u(),NcPopover:t.default},props:{open:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},forceTitle:{type:Boolean,default:!1},menuTitle:{type:String,default:null},primary:{type:Boolean,default:!1},type:{type:String,validator:function(e){return -1!==[\"primary\",\"secondary\",\"tertiary\",\"tertiary-no-background\",\"tertiary-on-primary\",\"error\",\"warning\",\"success\"].indexOf(e)},default:null},defaultIcon:{type:String,default:\"\"},ariaLabel:{type:String,default:(0, r.t)(\"Actions\")},placement:{type:String,default:\"bottom\"},boundariesElement:{type:Element,default:function(){return document.querySelector(\"body\")}},container:{type:String,default:\"body\"},disabled:{type:Boolean,default:!1},inline:{type:Number,default:0}},emits:[\"update:open\",\"open\",\"update:open\",\"close\",\"focus\",\"blur\"],data:function(){return {opened:this.open,focusIndex:0,randomId:\"menu-\".concat((0, n.Z)())}},computed:{triggerBtnType:function(){return this.type||(this.primary?\"primary\":this.menuTitle?\"secondary\":\"tertiary\")}},watch:{open:function(e){e!==this.opened&&(this.opened=e);}},methods:{isValidSingleAction:function(e){var t,a,o,i,n,r=null!==(t=null==e||null===(a=e.componentOptions)||void 0===a||null===(o=a.Ctor)||void 0===o||null===(i=o.extendOptions)||void 0===i?void 0:i.name)&&void 0!==t?t:null==e||null===(n=e.componentOptions)||void 0===n?void 0:n.tag;return [\"NcActionButton\",\"NcActionLink\",\"NcActionRouter\"].includes(r)},openMenu:function(e){this.opened||(this.opened=!0,this.$emit(\"update:open\",!0),this.$emit(\"open\"));},closeMenu:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.opened&&(this.opened=!1,this.$refs.popover.clearFocusTrap({returnFocus:e}),this.$emit(\"update:open\",!1),this.$emit(\"close\"),this.opened=!1,this.focusIndex=0,this.$refs.menuButton.$el.focus());},onOpen:function(e){var t=this;this.$nextTick((function(){t.focusFirstAction(e);}));},onMouseFocusAction:function(e){if(document.activeElement!==e.target){var t=e.target.closest(\"li\");if(t){var a=t.querySelector(v);if(a){var o=g(this.$refs.menu.querySelectorAll(v)).indexOf(a);o>-1&&(this.focusIndex=o,this.focusAction());}}}},onKeydown:function(e){(38===e.keyCode||9===e.keyCode&&e.shiftKey)&&this.focusPreviousAction(e),(40===e.keyCode||9===e.keyCode&&!e.shiftKey)&&this.focusNextAction(e),33===e.keyCode&&this.focusFirstAction(e),34===e.keyCode&&this.focusLastAction(e),27===e.keyCode&&(this.closeMenu(),e.preventDefault());},removeCurrentActive:function(){var e=this.$refs.menu.querySelector(\"li.active\");e&&e.classList.remove(\"active\");},focusAction:function(){var e=this.$refs.menu.querySelectorAll(v)[this.focusIndex];if(e){this.removeCurrentActive();var t=e.closest(\"li.action\");e.focus(),t&&t.classList.add(\"active\");}},focusPreviousAction:function(e){this.opened&&(0===this.focusIndex?this.closeMenu():(this.preventIfEvent(e),this.focusIndex=this.focusIndex-1),this.focusAction());},focusNextAction:function(e){if(this.opened){var t=this.$refs.menu.querySelectorAll(v).length-1;this.focusIndex===t?this.closeMenu():(this.preventIfEvent(e),this.focusIndex=this.focusIndex+1),this.focusAction();}},focusFirstAction:function(e){this.opened&&(this.preventIfEvent(e),this.focusIndex=0,this.focusAction());},focusLastAction:function(e){this.opened&&(this.preventIfEvent(e),this.focusIndex=this.$refs.menu.querySelectorAll(v).length-1,this.focusAction());},preventIfEvent:function(e){e&&(e.preventDefault(),e.stopPropagation());},onFocus:function(e){this.$emit(\"focus\",e);},onBlur:function(e){this.$emit(\"blur\",e);}},render:function(e){var t=this,a=(this.$slots.default||[]).filter((function(e){var t;return null==e||null===(t=e.componentOptions)||void 0===t?void 0:t.tag})),o=a.filter(this.isValidSingleAction);if(this.forceMenu&&o.length>0&&this.inline>0&&(l().util.warn(\"Specifying forceMenu will ignore any inline actions rendering.\"),o=[]),0!==a.length){var i=function(a){var o,i,n,r,s,l,c,u,d,p,g,A,v,h,b,f,C,y,k,S,w=(null==a||null===(o=a.data)||void 0===o||null===(i=o.scopedSlots)||void 0===i||null===(n=i.icon())||void 0===n?void 0:n[0])||e(\"span\",{class:[\"icon\",null==a||null===(r=a.componentOptions)||void 0===r||null===(s=r.propsData)||void 0===s?void 0:s.icon]}),j=t.forceTitle?t.menuTitle:\"\",P=null==a||null===(l=a.componentOptions)||void 0===l||null===(c=l.listeners)||void 0===c?void 0:c.click;return e(\"NcButton\",{class:[\"action-item action-item--single\",null==a||null===(u=a.data)||void 0===u?void 0:u.staticClass,null==a||null===(d=a.data)||void 0===d?void 0:d.class],attrs:{\"aria-label\":(null==a||null===(p=a.componentOptions)||void 0===p||null===(g=p.propsData)||void 0===g?void 0:g.ariaLabel)||(null==a||null===(A=a.componentOptions)||void 0===A||null===(v=A.children)||void 0===v||null===(h=v[0])||void 0===h?void 0:h.text)},props:m({type:t.type||(j?\"secondary\":\"tertiary\"),disabled:t.disabled||(null==a||null===(b=a.componentOptions)||void 0===b||null===(f=b.propsData)||void 0===f?void 0:f.disabled)},null==a||null===(C=a.componentOptions)||void 0===C?void 0:C.propsData),directives:[{name:\"tooltip\",value:null==a||null===(y=a.componentOptions)||void 0===y||null===(k=y.children)||void 0===k||null===(S=k[0])||void 0===S?void 0:S.text,modifiers:{auto:!0}}],on:m({focus:t.onFocus,blur:t.onBlur},!!P&&{click:function(e){P&&P(e);}})},[e(\"template\",{slot:\"icon\"},[w]),j])},n=function(a){var o,i=(null===(o=t.$slots.icon)||void 0===o?void 0:o[0])||(t.defaultIcon?e(\"span\",{class:[\"icon\",t.defaultIcon]}):e(\"DotsHorizontal\",{props:{size:20}}));return e(\"NcPopover\",{ref:\"popover\",props:{delay:0,handleResize:!0,shown:t.opened,placement:t.placement,boundary:t.boundariesElement,container:t.container,popoverBaseClass:\"action-item__popper\"},attrs:{delay:0,handleResize:!0,shown:t.opened,placement:t.placement,boundary:t.boundariesElement,container:t.container,popoverBaseClass:\"action-item__popper\"},on:{show:t.openMenu,\"after-show\":t.onOpen,hide:t.closeMenu}},[e(\"NcButton\",{class:\"action-item__menutoggle\",props:{type:t.triggerBtnType,disabled:t.disabled},slot:\"trigger\",ref:\"menuButton\",attrs:{\"aria-haspopup\":\"menu\",\"aria-label\":t.ariaLabel,\"aria-controls\":t.opened?t.randomId:null,\"aria-expanded\":t.opened.toString()},on:{focus:t.onFocus,blur:t.onBlur}},[e(\"template\",{slot:\"icon\"},[i]),t.menuTitle]),e(\"div\",{class:{open:t.opened},attrs:{tabindex:\"-1\"},on:{keydown:t.onKeydown,mousemove:t.onMouseFocusAction},ref:\"menu\"},[e(\"ul\",{attrs:{id:t.randomId,tabindex:\"-1\",role:\"menu\"}},[a])])])};if(1===a.length&&1===o.length&&!this.forceMenu)return i(o[0]);if(o.length>0&&this.inline>0){var r=o.slice(0,this.inline),s=a.filter((function(e){return !r.includes(e)}));return e(\"div\",{class:[\"action-items\",\"action-item--\".concat(this.triggerBtnType)]},[].concat(g(r.map(i)),[s.length>0?e(\"div\",{class:[\"action-item\",{\"action-item--open\":this.opened}]},[n(s)]):null]))}return e(\"div\",{class:[\"action-item action-item--default-popover\",\"action-item--\".concat(this.triggerBtnType),{\"action-item--open\":this.opened}]},[n(a)])}}},b=h,f=a(3379),C=a.n(f),y=a(7795),k=a.n(y),S=a(569),w=a.n(S),j=a(3565),P=a.n(j),N=a(9216),z=a.n(N),x=a(4589),E=a.n(x),T=a(2810),O={};O.styleTagTransform=E(),O.setAttributes=P(),O.insert=w().bind(null,\"head\"),O.domAPI=k(),O.insertStyleElement=z(),C()(T.Z,O),T.Z&&T.Z.locals&&T.Z.locals;var B=a(8582),D={};D.styleTagTransform=E(),D.setAttributes=P(),D.insert=w().bind(null,\"head\"),D.domAPI=k(),D.insertStyleElement=z(),C()(B.Z,D),B.Z&&B.Z.locals&&B.Z.locals;var F=a(1900),_=a(5727),I=a.n(_),G=(0, F.Z)(b,void 0,void 0,!1,null,\"7a49ed06\",null);\"function\"==typeof I()&&I()(G);var M=G.exports;}(),o}()}));\n\t\n} (NcActions$1));\n\nvar NcActions = /*@__PURE__*/getDefaultExportFromCjs(NcActions$1.exports);\n\nvar NcButton$1 = {exports: {}};\n\n(function (module, exports) {\n\t!function(t,n){module.exports=n();}(self,(function(){return function(){var t={7190:function(t,n,e){var o=e(7537),r=e.n(o),a=e(3645),i=e.n(a)()(r());i.push([t.id,\".material-design-icon[data-v-7a8f3349]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-7a8f3349]{position:relative;width:fit-content;overflow:hidden;border:0;padding:0;font-size:var(--default-font-size);font-weight:bold;min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:22px;transition:background-color .1s linear !important;transition:border .1s linear;background-color:var(--color-primary-element-lighter);color:var(--color-primary-light-text)}.button-vue *[data-v-7a8f3349]{cursor:pointer}.button-vue[data-v-7a8f3349]:focus{outline:none}.button-vue[data-v-7a8f3349]:disabled{cursor:default;opacity:.5;filter:saturate(0.7)}.button-vue:disabled *[data-v-7a8f3349]{cursor:default}.button-vue[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color-primary-light-hover)}.button-vue[data-v-7a8f3349]:active{background-color:var(--color-primary-element-lighter)}.button-vue__wrapper[data-v-7a8f3349]{display:inline-flex;align-items:center;justify-content:space-around}.button-vue__icon[data-v-7a8f3349]{height:44px;width:44px;min-height:44px;min-width:44px;display:flex;justify-content:center;align-items:center}.button-vue__text[data-v-7a8f3349]{font-weight:bold;margin-bottom:1px;padding:2px 0}.button-vue--icon-only[data-v-7a8f3349]{width:44px !important}.button-vue--text-only[data-v-7a8f3349]{padding:0 12px}.button-vue--text-only .button-vue__text[data-v-7a8f3349]{margin-left:4px;margin-right:4px}.button-vue--icon-and-text[data-v-7a8f3349]{padding:0 16px 0 4px}.button-vue--wide[data-v-7a8f3349]{width:100%}.button-vue[data-v-7a8f3349]:focus-visible{outline:2px solid var(--color-main-text) !important}.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-7a8f3349]{outline:2px solid var(--color-primary-text);border-radius:var(--border-radius);background-color:rgba(0,0,0,0)}.button-vue--vue-primary[data-v-7a8f3349]{background-color:var(--color-primary-element);color:var(--color-primary-text)}.button-vue--vue-primary[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color-primary-element-hover)}.button-vue--vue-primary[data-v-7a8f3349]:active{background-color:var(--color-primary-element)}.button-vue--vue-secondary[data-v-7a8f3349]{color:var(--color-primary-light-text);background-color:var(--color-primary-light)}.button-vue--vue-secondary[data-v-7a8f3349]:hover:not(:disabled){color:var(--color-primary-light-text);background-color:var(--color-primary-light-hover)}.button-vue--vue-tertiary[data-v-7a8f3349]{color:var(--color-main-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color);background-color:var(--color-background-hover)}.button-vue--vue-tertiary-no-background[data-v-7a8f3349]{color:var(--color-main-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-no-background[data-v-7a8f3349]:hover:not(:disabled){background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-on-primary[data-v-7a8f3349]{color:var(--color-primary-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-on-primary[data-v-7a8f3349]:hover:not(:disabled){background-color:rgba(0,0,0,0)}.button-vue--vue-success[data-v-7a8f3349]{background-color:var(--color-success);color:#fff}.button-vue--vue-success[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color-success-hover)}.button-vue--vue-success[data-v-7a8f3349]:active{background-color:var(--color-success)}.button-vue--vue-warning[data-v-7a8f3349]{background-color:var(--color-warning);color:#fff}.button-vue--vue-warning[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color-warning-hover)}.button-vue--vue-warning[data-v-7a8f3349]:active{background-color:var(--color-warning)}.button-vue--vue-error[data-v-7a8f3349]{background-color:var(--color-error);color:#fff}.button-vue--vue-error[data-v-7a8f3349]:hover:not(:disabled){background-color:var(--color-error-hover)}.button-vue--vue-error[data-v-7a8f3349]:active{background-color:var(--color-error)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcButton/NcButton.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,6BACC,iBAAA,CACA,iBAAA,CACA,eAAA,CACA,QAAA,CACA,SAAA,CACA,kCAAA,CACA,gBAAA,CACA,eCcgB,CDbhB,cCagB,CDZhB,YAAA,CACA,kBAAA,CACA,sBAAA,CAGA,cAAA,CAIA,kBAAA,CACA,iDAAA,CACA,4BAAA,CAkBA,qDAAA,CACA,qCAAA,CAxBA,+BACC,cAAA,CAOD,mCACC,YAAA,CAGD,sCACC,cAAA,CAIA,UCMiB,CDJjB,oBAAA,CALA,wCACC,cAAA,CAUF,kDACC,iDAAA,CAKD,oCACC,qDAAA,CAGD,sCACC,mBAAA,CACA,kBAAA,CACA,4BAAA,CAGD,mCACC,WCpCe,CDqCf,UCrCe,CDsCf,eCtCe,CDuCf,cCvCe,CDwCf,YAAA,CACA,sBAAA,CACA,kBAAA,CAGD,mCACC,gBAAA,CACA,iBAAA,CACA,aAAA,CAID,wCACC,qBAAA,CAID,wCACC,cAAA,CACA,0DACC,eAAA,CACA,gBAAA,CAKF,4CACC,oBAAA,CAID,mCACC,UAAA,CAGD,2CACC,mDAAA,CACA,+EACC,2CAAA,CACA,kCAAA,CACA,8BAAA,CAOF,0CACC,6CAAA,CACA,+BAAA,CACA,+DACC,mDAAA,CAID,iDACC,6CAAA,CAKF,4CACC,qCAAA,CACA,2CAAA,CACA,iEACC,qCAAA,CACA,iDAAA,CAKF,2CACC,4BAAA,CACA,8BAAA,CACA,gEACC,6BAAA,CACA,8CAAA,CAKF,yDACC,4BAAA,CACA,8BAAA,CACA,8EACC,8BAAA,CAKF,sDACC,+BAAA,CACA,8BAAA,CAEA,2EACC,8BAAA,CAKF,0CACC,qCAAA,CACA,UAAA,CACA,+DACC,2CAAA,CAID,iDACC,qCAAA,CAKF,0CACC,qCAAA,CACA,UAAA,CACA,+DACC,2CAAA,CAID,iDACC,qCAAA,CAKF,wCACC,mCAAA,CACA,UAAA,CACA,6DACC,yCAAA,CAID,+CACC,mCAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"bb2125f\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.button-vue {\\n\\tposition: relative;\\n\\twidth: fit-content;\\n\\toverflow: hidden;\\n\\tborder: 0;\\n\\tpadding: 0;\\n\\tfont-size: var(--default-font-size);\\n\\tfont-weight: bold;\\n\\tmin-height: $clickable-area;\\n\\tmin-width: $clickable-area;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\n\\t// Cursor pointer on element and all children\\n\\tcursor: pointer;\\n\\t& * {\\n\\t\\tcursor: pointer;\\n\\t}\\n\\tborder-radius: math.div($clickable-area, 2);\\n\\ttransition: background-color 0.1s linear !important;\\n\\ttransition: border 0.1s linear;\\n\\n\\t// No outline feedback for focus. Handled with a toggled class in js (see data)\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t&:disabled {\\n\\t\\tcursor: default;\\n\\t\\t& * {\\n\\t\\t\\tcursor: default;\\n\\t\\t}\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t// Gives a wash out effect\\n\\t\\tfilter: saturate($opacity_normal);\\n\\t}\\n\\n\\t// Default button type\\n\\tbackground-color: var(--color-primary-element-lighter);\\n\\tcolor: var(--color-primary-light-text);\\n\\t&:hover:not(:disabled) {\\n\\t\\tbackground-color: var(--color-primary-light-hover);\\n\\t}\\n\\n\\t// Back to the default color for this button when active\\n\\t// TODO: add ripple effect\\n\\t&:active {\\n\\t\\tbackground-color: var(--color-primary-element-lighter);\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tdisplay: inline-flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: space-around;\\n\\t}\\n\\n\\t&__icon {\\n\\t\\theight: $clickable-area;\\n\\t\\twidth: $clickable-area;\\n\\t\\tmin-height: $clickable-area;\\n\\t\\tmin-width: $clickable-area;\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\talign-items: center;\\n\\t}\\n\\n\\t&__text {\\n\\t\\tfont-weight: bold;\\n\\t\\tmargin-bottom: 1px;\\n\\t\\tpadding: 2px 0;\\n\\t}\\n\\n\\t// Icon-only button\\n\\t&--icon-only {\\n\\t\\twidth: $clickable-area !important;\\n\\t}\\n\\n\\t// Text-only button\\n\\t&--text-only {\\n\\t\\tpadding: 0 12px;\\n\\t\\t& .button-vue__text {\\n\\t\\t\\tmargin-left: 4px;\\n\\t\\t\\tmargin-right: 4px;\\n\\t\\t}\\n\\t}\\n\\n\\t// Icon and text button\\n\\t&--icon-and-text {\\n\\t\\tpadding: 0 16px 0 4px;\\n\\t}\\n\\n\\t// Wide button spans the whole width of the container\\n\\t&--wide {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t&:focus-visible {\\n\\t\\toutline: 2px solid var(--color-main-text) !important;\\n\\t\\t&.button-vue--vue-tertiary-on-primary {\\n\\t\\t\\toutline: 2px solid var(--color-primary-text);\\n\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// Button types\\n\\n\\t// Primary\\n\\t&--vue-primary {\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\tcolor: var(--color-primary-text);\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color-primary-element-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// TODO: add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t}\\n\\t}\\n\\n\\t// Secondary\\n\\t&--vue-secondary {\\n\\t\\tcolor: var(--color-primary-light-text);\\n\\t\\tbackground-color: var(--color-primary-light);\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tcolor: var(--color-primary-light-text);\\n\\t\\t\\tbackground-color: var(--color-primary-light-hover);\\n\\t\\t}\\n\\t}\\n\\n\\t// Tertiary\\n\\t&--vue-tertiary {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tbackground-color: transparent;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color);\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t}\\n\\n\\t// Tertiary, no background\\n\\t&--vue-tertiary-no-background {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tbackground-color: transparent;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// Tertiary on primary color (like the header)\\n\\t&--vue-tertiary-on-primary {\\n\\t\\tcolor: var(--color-primary-text);\\n\\t\\tbackground-color: transparent;\\n\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// Success\\n\\t&--vue-success {\\n\\t\\tbackground-color: var(--color-success);\\n\\t\\tcolor: white;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color-success-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// : add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-success);\\n\\t\\t}\\n\\t}\\n\\n\\t// Warning\\n\\t&--vue-warning {\\n\\t\\tbackground-color: var(--color-warning);\\n\\t\\tcolor: white;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color-warning-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// TODO: add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-warning);\\n\\t\\t}\\n\\t}\\n\\n\\t// Error\\n\\t&--vue-error {\\n\\t\\tbackground-color: var(--color-error);\\n\\t\\tcolor: white;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color-error-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// TODO: add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-error);\\n\\t\\t}\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\"],sourceRoot:\"\"}]),n.Z=i;},3645:function(t){t.exports=function(t){var n=[];return n.toString=function(){return this.map((function(n){var e=\"\",o=void 0!==n[5];return n[4]&&(e+=\"@supports (\".concat(n[4],\") {\")),n[2]&&(e+=\"@media \".concat(n[2],\" {\")),o&&(e+=\"@layer\".concat(n[5].length>0?\" \".concat(n[5]):\"\",\" {\")),e+=t(n),o&&(e+=\"}\"),n[2]&&(e+=\"}\"),n[4]&&(e+=\"}\"),e})).join(\"\")},n.i=function(t,e,o,r,a){\"string\"==typeof t&&(t=[[null,t,void 0]]);var i={};if(o)for(var c=0;c<this.length;c++){var u=this[c][0];null!=u&&(i[u]=!0);}for(var s=0;s<t.length;s++){var l=[].concat(t[s]);o&&i[l[0]]||(void 0!==a&&(void 0===l[5]||(l[1]=\"@layer\".concat(l[5].length>0?\" \".concat(l[5]):\"\",\" {\").concat(l[1],\"}\")),l[5]=a),e&&(l[2]?(l[1]=\"@media \".concat(l[2],\" {\").concat(l[1],\"}\"),l[2]=e):l[2]=e),r&&(l[4]?(l[1]=\"@supports (\".concat(l[4],\") {\").concat(l[1],\"}\"),l[4]=r):l[4]=\"\".concat(r)),n.push(l));}},n};},7537:function(t){t.exports=function(t){var n=t[1],e=t[3];if(!e)return n;if(\"function\"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(e)))),r=\"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(o),a=\"/*# \".concat(r,\" */\"),i=e.sources.map((function(t){return \"/*# sourceURL=\".concat(e.sourceRoot||\"\").concat(t,\" */\")}));return [n].concat(i).concat([a]).join(\"\\n\")}return [n].join(\"\\n\")};},3379:function(t){var n=[];function e(t){for(var e=-1,o=0;o<n.length;o++)if(n[o].identifier===t){e=o;break}return e}function o(t,o){for(var a={},i=[],c=0;c<t.length;c++){var u=t[c],s=o.base?u[0]+o.base:u[0],l=a[s]||0,d=\"\".concat(s,\" \").concat(l);a[s]=l+1;var A=e(d),v={css:u[1],media:u[2],sourceMap:u[3],supports:u[4],layer:u[5]};if(-1!==A)n[A].references++,n[A].updater(v);else {var f=r(v,o);o.byIndex=c,n.splice(c,0,{identifier:d,updater:f,references:1});}i.push(d);}return i}function r(t,n){var e=n.domAPI(n);return e.update(t),function(n){if(n){if(n.css===t.css&&n.media===t.media&&n.sourceMap===t.sourceMap&&n.supports===t.supports&&n.layer===t.layer)return;e.update(t=n);}else e.remove();}}t.exports=function(t,r){var a=o(t=t||[],r=r||{});return function(t){t=t||[];for(var i=0;i<a.length;i++){var c=e(a[i]);n[c].references--;}for(var u=o(t,r),s=0;s<a.length;s++){var l=e(a[s]);0===n[l].references&&(n[l].updater(),n.splice(l,1));}a=u;}};},569:function(t){var n={};t.exports=function(t,e){var o=function(t){if(void 0===n[t]){var e=document.querySelector(t);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head;}catch(t){e=null;}n[t]=e;}return n[t]}(t);if(!o)throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");o.appendChild(e);};},9216:function(t){t.exports=function(t){var n=document.createElement(\"style\");return t.setAttributes(n,t.attributes),t.insert(n,t.options),n};},3565:function(t,n,e){t.exports=function(t){var n=e.nc;n&&t.setAttribute(\"nonce\",n);};},7795:function(t){t.exports=function(t){var n=t.insertStyleElement(t);return {update:function(e){!function(t,n,e){var o=\"\";e.supports&&(o+=\"@supports (\".concat(e.supports,\") {\")),e.media&&(o+=\"@media \".concat(e.media,\" {\"));var r=void 0!==e.layer;r&&(o+=\"@layer\".concat(e.layer.length>0?\" \".concat(e.layer):\"\",\" {\")),o+=e.css,r&&(o+=\"}\"),e.media&&(o+=\"}\"),e.supports&&(o+=\"}\");var a=e.sourceMap;a&&\"undefined\"!=typeof btoa&&(o+=\"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a)))),\" */\")),n.styleTagTransform(o,t,n.options);}(n,t,e);},remove:function(){!function(t){if(null===t.parentNode)return !1;t.parentNode.removeChild(t);}(n);}}};},4589:function(t){t.exports=function(t,n){if(n.styleSheet)n.styleSheet.cssText=t;else {for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(t));}};},2102:function(){},1900:function(t,n,e){function o(t,n,e,o,r,a,i,c){var u,s=\"function\"==typeof t?t.options:t;if(n&&(s.render=n,s.staticRenderFns=e,s._compiled=!0),o&&(s.functional=!0),a&&(s._scopeId=\"data-v-\"+a),i?(u=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(i);},s._ssrRegister=u):r&&(u=c?function(){r.call(this,(s.functional?this.parent:this).$root.$options.shadowRoot);}:r),u)if(s.functional){s._injectStyles=u;var l=s.render;s.render=function(t,n){return u.call(n),l(t,n)};}else {var d=s.beforeCreate;s.beforeCreate=d?[].concat(d,u):[u];}return {exports:t,options:s}}e.d(n,{Z:function(){return o}});}},n={};function e(o){var r=n[o];if(void 0!==r)return r.exports;var a=n[o]={id:o,exports:{}};return t[o](a,a.exports,e),a.exports}e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,{a:n}),n},e.d=function(t,n){for(var o in n)e.o(n,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:n[o]});},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0});},e.nc=void 0;var o={};return function(){function t(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,o);}return e}function n(n){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{};e%2?t(Object(o),!0).forEach((function(t){r(n,t,o[t]);})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):t(Object(o)).forEach((function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(o,t));}));}return n}function r(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}e.r(o),e.d(o,{default:function(){return w}});var a={name:\"NcButton\",props:{disabled:{type:Boolean,default:!1},type:{type:String,validator:function(t){return -1!==[\"primary\",\"secondary\",\"tertiary\",\"tertiary-no-background\",\"tertiary-on-primary\",\"error\",\"warning\",\"success\"].indexOf(t)},default:\"secondary\"},nativeType:{type:String,validator:function(t){return -1!==[\"submit\",\"reset\",\"button\"].indexOf(t)},default:\"button\"},wide:{type:Boolean,default:!1},ariaLabel:{type:String,default:null},href:{type:String,default:null},to:{type:[String,Object],default:null},exact:{type:Boolean,default:!1}},data:function(){return {slots:this.$slots}},computed:{rootElement:function(){return this.to?n({is:\"router-link\",tag:\"button\",to:this.to,exact:this.exact},this.$attrs):this.href?n({is:\"a\",href:this.href},this.$attrs):n({is:\"button\"},this.$attrs)},hasText:function(){var t,n,e;return void 0!==(null===(t=this.slots)||void 0===t?void 0:t.default)&&(null===(n=this.slots)||void 0===n||null===(e=n.default[0])||void 0===e?void 0:e.text)},hasIcon:function(){return void 0!==this.slots.icon},iconOnly:function(){return this.hasIcon&&!this.hasText},textOnly:function(){return !this.hasIcon&&this.hasText},iconAndText:function(){return this.hasIcon&&this.hasText},text:function(){return this.hasText?this.slots.default[0].text.trim():null},buttonClassObject:function(){var t;return r(t={\"button-vue--icon-only\":this.iconOnly,\"button-vue--text-only\":this.textOnly,\"button-vue--icon-and-text\":this.iconAndText},\"button-vue--vue-\".concat(this.type),this.type),r(t,\"button-vue--wide\",this.wide),t}},beforeUpdate:function(){this.slots=this.$slots;},mounted:function(){this.text||this.ariaLabel||console.warn(\"You need to fill either the text or the ariaLabel props in the button component.\",{text:this.text,ariaLabel:this.ariaLabel},this);}},i=e(3379),c=e.n(i),u=e(7795),s=e.n(u),l=e(569),d=e.n(l),A=e(3565),v=e.n(A),f=e(9216),p=e.n(f),C=e(4589),b=e.n(C),h=e(7190),g={};g.styleTagTransform=b(),g.setAttributes=v(),g.insert=d().bind(null,\"head\"),g.domAPI=s(),g.insertStyleElement=p(),c()(h.Z,g),h.Z&&h.Z.locals&&h.Z.locals;var m=e(1900),y=e(2102),x=e.n(y),k=(0, m.Z)(a,(function(){var t=this,n=t._self._c;return n(\"root-element\",t._g(t._b({staticClass:\"button-vue\",class:t.buttonClassObject,attrs:{\"aria-label\":t.ariaLabel,type:t.nativeType,disabled:t.disabled}},\"root-element\",t.rootElement,!1),t.$listeners),[n(\"span\",{staticClass:\"button-vue__wrapper\"},[t.hasIcon?n(\"span\",{staticClass:\"button-vue__icon\"},[t._t(\"icon\")],2):t._e(),t._v(\" \"),t.hasText?n(\"span\",{staticClass:\"button-vue__text\"},[t._t(\"default\")],2):t._e()])])}),[],!1,null,\"7a8f3349\",null);\"function\"==typeof x()&&x()(k);var w=k.exports;}(),o}()}));\n\t\n} (NcButton$1));\n\nvar NcButton = /*@__PURE__*/getDefaultExportFromCjs(NcButton$1.exports);\n\nvar NcProgressBar$1 = {exports: {}};\n\n(function (module, exports) {\n\t!function(r,e){module.exports=e();}(self,(function(){return function(){var r={291:function(r,e,t){var n=t(7537),a=t.n(n),o=t(3645),s=t.n(o)()(a());s.push([r.id,\".material-design-icon[data-v-3d7aaa3a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.progress-bar[data-v-3d7aaa3a]{display:block;width:100%;background:var(--color-background-dark);border:0;padding:0;height:var(--progress-bar-height);border-radius:calc(var(--progress-bar-height)/2)}.progress-bar[data-v-3d7aaa3a]::-webkit-progress-bar{height:var(--progress-bar-height)}.progress-bar[data-v-3d7aaa3a]::-webkit-progress-value{background:linear-gradient(40deg, var(--color-primary-element) 0%, var(--color-primary-element-light) 100%);border-radius:calc(var(--progress-bar-height)/2)}.progress-bar[data-v-3d7aaa3a]::-moz-progress-bar{background:linear-gradient(40deg, var(--color-primary-element) 0%, var(--color-primary-element-light) 100%);border-radius:calc(var(--progress-bar-height)/2)}.progress-bar--error[data-v-3d7aaa3a]::-moz-progress-bar{background:var(--color-error) !important}.progress-bar--error[data-v-3d7aaa3a]::-webkit-progress-value{background:var(--color-error) !important}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcProgressBar/NcProgressBar.vue\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,+BACC,aAAA,CACA,UAAA,CACA,uCAAA,CACA,QAAA,CACA,SAAA,CACA,iCAAA,CACA,gDAAA,CACA,qDACC,iCAAA,CAED,uDACC,2GAAA,CACA,gDAAA,CAED,kDACC,2GAAA,CACA,gDAAA,CAIA,yDACC,wCAAA,CAED,8DACC,wCAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"bb2125f\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.progress-bar {\\n\\tdisplay: block;\\n\\twidth: 100%;\\n\\tbackground: var(--color-background-dark);\\n\\tborder: 0;\\n\\tpadding: 0;\\n\\theight: var(--progress-bar-height);\\n\\tborder-radius: calc(var(--progress-bar-height) / 2);\\n\\t&::-webkit-progress-bar {\\n\\t\\theight: var(--progress-bar-height);\\n\\t}\\n\\t&::-webkit-progress-value {\\n\\t\\tbackground: linear-gradient(40deg, var(--color-primary-element) 0%, var(--color-primary-element-light) 100%);\\n\\t\\tborder-radius: calc(var(--progress-bar-height) / 2);\\n\\t}\\n\\t&::-moz-progress-bar {\\n\\t\\tbackground: linear-gradient(40deg, var(--color-primary-element) 0%, var(--color-primary-element-light) 100%);\\n\\t\\tborder-radius: calc(var(--progress-bar-height) / 2);\\n\\t}\\n\\t&--error {\\n\\t\\t// Override previous values\\n\\t\\t&::-moz-progress-bar {\\n\\t\\t\\tbackground: var(--color-error) !important;\\n\\t\\t}\\n\\t\\t&::-webkit-progress-value {\\n\\t\\t\\tbackground: var(--color-error) !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]),e.Z=s;},3645:function(r){r.exports=function(r){var e=[];return e.toString=function(){return this.map((function(e){var t=\"\",n=void 0!==e[5];return e[4]&&(t+=\"@supports (\".concat(e[4],\") {\")),e[2]&&(t+=\"@media \".concat(e[2],\" {\")),n&&(t+=\"@layer\".concat(e[5].length>0?\" \".concat(e[5]):\"\",\" {\")),t+=r(e),n&&(t+=\"}\"),e[2]&&(t+=\"}\"),e[4]&&(t+=\"}\"),t})).join(\"\")},e.i=function(r,t,n,a,o){\"string\"==typeof r&&(r=[[null,r,void 0]]);var s={};if(n)for(var i=0;i<this.length;i++){var c=this[i][0];null!=c&&(s[c]=!0);}for(var u=0;u<r.length;u++){var l=[].concat(r[u]);n&&s[l[0]]||(void 0!==o&&(void 0===l[5]||(l[1]=\"@layer\".concat(l[5].length>0?\" \".concat(l[5]):\"\",\" {\").concat(l[1],\"}\")),l[5]=o),t&&(l[2]?(l[1]=\"@media \".concat(l[2],\" {\").concat(l[1],\"}\"),l[2]=t):l[2]=t),a&&(l[4]?(l[1]=\"@supports (\".concat(l[4],\") {\").concat(l[1],\"}\"),l[4]=a):l[4]=\"\".concat(a)),e.push(l));}},e};},7537:function(r){r.exports=function(r){var e=r[1],t=r[3];if(!t)return e;if(\"function\"==typeof btoa){var n=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),a=\"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(n),o=\"/*# \".concat(a,\" */\"),s=t.sources.map((function(r){return \"/*# sourceURL=\".concat(t.sourceRoot||\"\").concat(r,\" */\")}));return [e].concat(s).concat([o]).join(\"\\n\")}return [e].join(\"\\n\")};},3379:function(r){var e=[];function t(r){for(var t=-1,n=0;n<e.length;n++)if(e[n].identifier===r){t=n;break}return t}function n(r,n){for(var o={},s=[],i=0;i<r.length;i++){var c=r[i],u=n.base?c[0]+n.base:c[0],l=o[u]||0,p=\"\".concat(u,\" \").concat(l);o[u]=l+1;var d=t(p),f={css:c[1],media:c[2],sourceMap:c[3],supports:c[4],layer:c[5]};if(-1!==d)e[d].references++,e[d].updater(f);else {var g=a(f,n);n.byIndex=i,e.splice(i,0,{identifier:p,updater:g,references:1});}s.push(p);}return s}function a(r,e){var t=e.domAPI(e);return t.update(r),function(e){if(e){if(e.css===r.css&&e.media===r.media&&e.sourceMap===r.sourceMap&&e.supports===r.supports&&e.layer===r.layer)return;t.update(r=e);}else t.remove();}}r.exports=function(r,a){var o=n(r=r||[],a=a||{});return function(r){r=r||[];for(var s=0;s<o.length;s++){var i=t(o[s]);e[i].references--;}for(var c=n(r,a),u=0;u<o.length;u++){var l=t(o[u]);0===e[l].references&&(e[l].updater(),e.splice(l,1));}o=c;}};},569:function(r){var e={};r.exports=function(r,t){var n=function(r){if(void 0===e[r]){var t=document.querySelector(r);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head;}catch(r){t=null;}e[r]=t;}return e[r]}(r);if(!n)throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");n.appendChild(t);};},9216:function(r){r.exports=function(r){var e=document.createElement(\"style\");return r.setAttributes(e,r.attributes),r.insert(e,r.options),e};},3565:function(r,e,t){r.exports=function(r){var e=t.nc;e&&r.setAttribute(\"nonce\",e);};},7795:function(r){r.exports=function(r){var e=r.insertStyleElement(r);return {update:function(t){!function(r,e,t){var n=\"\";t.supports&&(n+=\"@supports (\".concat(t.supports,\") {\")),t.media&&(n+=\"@media \".concat(t.media,\" {\"));var a=void 0!==t.layer;a&&(n+=\"@layer\".concat(t.layer.length>0?\" \".concat(t.layer):\"\",\" {\")),n+=t.css,a&&(n+=\"}\"),t.media&&(n+=\"}\"),t.supports&&(n+=\"}\");var o=t.sourceMap;o&&\"undefined\"!=typeof btoa&&(n+=\"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o)))),\" */\")),e.styleTagTransform(n,r,e.options);}(e,r,t);},remove:function(){!function(r){if(null===r.parentNode)return !1;r.parentNode.removeChild(r);}(e);}}};},4589:function(r){r.exports=function(r,e){if(e.styleSheet)e.styleSheet.cssText=r;else {for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(r));}};},8070:function(){}},e={};function t(n){var a=e[n];if(void 0!==a)return a.exports;var o=e[n]={id:n,exports:{}};return r[n](o,o.exports,t),o.exports}t.n=function(r){var e=r&&r.__esModule?function(){return r.default}:function(){return r};return t.d(e,{a:e}),e},t.d=function(r,e){for(var n in e)t.o(e,n)&&!t.o(r,n)&&Object.defineProperty(r,n,{enumerable:!0,get:e[n]});},t.o=function(r,e){return Object.prototype.hasOwnProperty.call(r,e)},t.r=function(r){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(r,\"__esModule\",{value:!0});},t.nc=void 0;var n={};return function(){t.r(n),t.d(n,{default:function(){return C}});var r={name:\"NcProgressBar\",props:{value:{type:Number,default:0,validator:function(r){return r>=0&&r<=100}},size:{type:String,default:\"small\",validator:function(r){return -1!==[\"small\",\"medium\"].indexOf(r)}},error:{type:Boolean,default:!1}},computed:{height:function(){return \"small\"===this.size?\"4px\":\"6px\"}}},e=t(3379),a=t.n(e),o=t(7795),s=t.n(o),i=t(569),c=t.n(i),u=t(3565),l=t.n(u),p=t(9216),d=t.n(p),f=t(4589),g=t.n(f),v=t(291),A={};A.styleTagTransform=g(),A.setAttributes=l(),A.insert=c().bind(null,\"head\"),A.domAPI=s(),A.insertStyleElement=d(),a()(v.Z,A),v.Z&&v.Z.locals&&v.Z.locals;var m=t(8070),b=t.n(m),h=function(r,e,t,n,a,o,s,i){var c,u=\"function\"==typeof r?r.options:r;if(e&&(u.render=e,u.staticRenderFns=[],u._compiled=!0),u._scopeId=\"data-v-3d7aaa3a\",c);return {exports:r,options:u}}(r,(function(){var r=this;return (0, r._self._c)(\"progress\",{staticClass:\"progress-bar vue\",class:{\"progress-bar--error\":r.error},style:{\"--progress-bar-height\":r.height},attrs:{max:\"100\"},domProps:{value:r.value}})}));\"function\"==typeof b()&&b()(h);var C=h.exports;}(),n}()}));\n\t\n} (NcProgressBar$1));\n\nvar NcProgressBar = /*@__PURE__*/getDefaultExportFromCjs(NcProgressBar$1.exports);\n\nvar Cancel = {\nrender: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',_vm._b({staticClass:\"material-design-icon cancel-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])},\nstaticRenderFns: [],\n name: \"CancelIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\n\nvar Plus = {\nrender: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',_vm._b({staticClass:\"material-design-icon plus-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])},\nstaticRenderFns: [],\n name: \"PlusIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\n\nvar Upload = {\nrender: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',_vm._b({staticClass:\"material-design-icon upload-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])},\nstaticRenderFns: [],\n name: \"UploadIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\n\nvar gettextExports = requireGettext();\n\nconst gtBuilder = gettextExports.getGettextBuilder()\n .detectLocale();\nconst translations = process.env.TRANSLATIONS;\ntranslations.forEach(data => gtBuilder.addTranslation(data.locale, data.json));\nconst gt = gtBuilder.build();\ngt.ngettext.bind(gt);\nconst t = gt.gettext.bind(gt);\n\nvar css = \"\\n.upload-picker__menu-icon {\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n\\talign-items: center;\\n\\twidth: 44px;\\n\\theight: 44px;\\n\\topacity: 1;\\n}\\n.upload-picker__menu-icon svg {\\n\\tfill: currentColor;\\n\\tmax-width: 20px;\\n\\tmax-height: 20px;\\n}\\n\";\nn(css,{});\n\nvar ActionIcon = {\n\tprops: {\n\t\tsvg: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tcleanSvg: '',\n\t\t}\n\t},\n\n\tbeforeMount() {\n\t\tthis.sanitizeSVG();\n\t},\n\n\tmethods: {\n\t\tasync sanitizeSVG() {\n\t\t\tif (!this.svg) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.cleanSvg = await sanitizeSVG(this.svg);\n\t\t},\n\t},\n\n\trender(createElement) {\n\t\tif (!this.cleanSvg) {\n\t\t\treturn\n\t\t}\n\n\t\treturn createElement('span', {\n\t\t\tclass: 'upload-picker__menu-icon',\n\t\t\tdomProps: {\n\t\t\t\tinnerHTML: this.cleanSvg,\n\t\t\t},\n\t\t})\n\t},\n};\n\n/** @type {Uploader} */\nconst uploadManager = getUploader();\n\nvar UploadPicker = {\nrender: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{ref:\"form\",staticClass:\"upload-picker\",class:{'upload-picker--uploading': _vm.isUploading, 'upload-picker--paused': _vm.isPaused},attrs:{\"data-upload-picker\":\"\"}},[(_vm.newFileMenuEntries.length === 0)?_c('NcButton',{attrs:{\"disabled\":_vm.disabled,\"data-upload-picker-add\":\"\"},on:{\"click\":_vm.onClick},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Plus',{attrs:{\"title\":\"\",\"size\":20,\"decorative\":\"\"}})]},proxy:true}],null,false,2954875042)},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.addLabel)+\"\\n\\t\")]):_c('NcActions',{attrs:{\"menu-title\":_vm.addLabel},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Plus',{attrs:{\"title\":\"\",\"size\":20,\"decorative\":\"\"}})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionButton',{attrs:{\"data-upload-picker-add\":\"\"},on:{\"click\":_vm.onClick},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Upload',{attrs:{\"title\":\"\",\"size\":20,\"decorative\":\"\"}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.uploadLabel)+\"\\n\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.newFileMenuEntries),function(entry){return _c('NcActionButton',{key:entry.id,staticClass:\"upload-picker__menu-entry\",attrs:{\"icon\":entry.iconClass},on:{\"click\":entry.handler},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ActionIcon',{attrs:{\"svg\":entry.iconSvgInline}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(entry.displayName)+\"\\n\\t\\t\")])})],2),_vm._v(\" \"),_c('div',{staticClass:\"upload-picker__progress\"},[_c('NcProgressBar',{attrs:{\"error\":_vm.hasFailure,\"value\":_vm.progress,\"size\":\"medium\"}}),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.timeLeft))])],1),_vm._v(\" \"),(_vm.isUploading)?_c('NcButton',{staticClass:\"upload-picker__cancel\",attrs:{\"type\":\"tertiary\",\"aria-label\":_vm.cancelLabel,\"data-upload-picker-cancel\":\"\"},on:{\"click\":_vm.onCancel},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Cancel',{attrs:{\"title\":\"\",\"size\":20}})]},proxy:true}],null,false,4076886712)}):_vm._e(),_vm._v(\" \"),_c('input',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],ref:\"input\",attrs:{\"type\":\"file\",\"accept\":_vm.accept,\"multiple\":_vm.multiple,\"data-upload-picker-input\":\"\"},on:{\"change\":_vm.onPick}})],1)},\nstaticRenderFns: [],\n\tname: 'UploadPicker',\n\tcomponents: {\n\t\tNcActionButton,\n\t\tActionIcon,\n\t\tNcActions,\n\t\tNcButton,\n\t\tCancel,\n\t\tPlus,\n\t\tNcProgressBar,\n\t\tUpload,\n\t},\n\n\tprops: {\n\t\taccept: {\n\t\t\ttype: Array,\n\t\t\tdefault: null,\n\t\t},\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tmultiple: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tdestination: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\troot: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\tcontext: {\n\t\t\ttype: Object,\n\t\t\tdefault: undefined,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\taddLabel: t('Add'),\n\t\t\tcancelLabel: t('Cancel uploads'),\n\t\t\tuploadLabel: t('Upload files'),\n\n\t\t\teta: null,\n\t\t\ttimeLeft: '',\n\n\t\t\tnewFileMenuEntries: getNewFileMenuEntries(this.context),\n\t\t\tuploadManager,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\ttotalQueueSize() {\n\t\t\treturn this.uploadManager.info?.size || 0\n\t\t},\n\t\tuploadedQueueSize() {\n\t\t\treturn this.uploadManager.info?.progress || 0\n\t\t},\n\t\tprogress() {\n\t\t\treturn Math.round(this.uploadedQueueSize / this.totalQueueSize * 100) || 0\n\t\t},\n\n\t\tqueue() {\n\t\t\treturn this.uploadManager.queue\n\t\t},\n\n\t\thasFailure() {\n\t\t\treturn this.queue?.filter(upload => upload.status === Status$1.FAILED).length !== 0\n\t\t},\n\t\tisUploading() {\n\t\t\treturn this.queue?.length > 0\n\t\t},\n\t\tisAssembling() {\n\t\t\treturn this.queue?.filter(upload => upload.status === Status$1.ASSEMBLING).length !== 0\n\t\t},\n\t\tisPaused() {\n\t\t\treturn this.uploadManager.info?.status === Status.PAUSED\n\t\t},\n\t},\n\n\twatch: {\n\t\t/**\n\t\t * If the context change, we need to refresh the menu\n\t\t *\n\t\t * @param {FileInfo} context the current NewFileMenu context\n\t\t */\n\t\tcontext(context) {\n\t\t\tthis.setContext(context);\n\t\t},\n\n\t\ttotalQueueSize(size) {\n\t\t\tthis.eta = simpleEta({ min: 0, max: size });\n\t\t\tthis.updateStatus();\n\t\t},\n\n\t\tuploadedQueueSize(size) {\n\t\t\tthis.eta.report(size);\n\t\t\tthis.updateStatus();\n\t\t},\n\n\t\tdestination(destination) {\n\t\t\tthis.setDestination(destination);\n\t\t},\n\n\t\troot(path) {\n\t\t\tthis.setRoot(path);\n\t\t},\n\n\t\tqueue(queue, oldQueue) {\n\t\t\tif (queue.length < oldQueue.length) {\n\t\t\t\tthis.$emit('uploaded', oldQueue.filter(upload => !queue.includes(upload)));\n\t\t\t}\n\t\t},\n\n\t\thasFailure(hasFailure) {\n\t\t\tif (hasFailure) {\n\t\t\t\tthis.$emit('failed', this.queue);\n\t\t\t}\n\t\t},\n\n\t\tisPaused(isPaused) {\n\t\t\tif (isPaused) {\n\t\t\t\tthis.$emit('paused', this.queue);\n\t\t\t} else {\n\t\t\t\tthis.$emit('resumed', this.queue);\n\t\t\t}\n\t\t},\n\t},\n\n\tbeforeMount() {\n\t\tthis.setDestination(this.destination);\n\t\tthis.setRoot(this.root);\n\n\t\tthis.setContext(this.context);\n\t\tlogger.debug('UploadPicker initialised');\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Trigger file picker\n\t\t */\n\t\tonClick() {\n\t\t\tthis.$refs.input.click();\n\t\t},\n\n\t\t/**\n\t\t * Start uploading\n\t\t */\n\t\tasync onPick() {\n\t\t\tconst files = [...this.$refs.input.files];\n\t\t\tfiles.forEach(file => {\n\t\t\t\tuploadManager.upload(file.name, file);\n\t\t\t});\n\t\t\tthis.$refs.form.reset();\n\t\t},\n\n\t\t/**\n\t\t * Cancel ongoing queue\n\t\t */\n\t\tonCancel() {\n\t\t\tthis.uploadManager.queue.forEach(upload => {\n\t\t\t\tupload.cancel();\n\t\t\t});\n\t\t\tthis.$refs.form.reset();\n\t\t},\n\n\t\tupdateStatus() {\n\t\t\tif (this.isPaused) {\n\t\t\t\tthis.timeLeft = t('paused');\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst estimate = Math.round(this.eta.estimate());\n\n\t\t\tif (estimate === Infinity) {\n\t\t\t\tthis.timeLeft = t('estimating time left');\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (estimate < 10) {\n\t\t\t\tthis.timeLeft = t('a few seconds left');\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (estimate > 60) {\n\t\t\t\tconst date = new Date(0);\n\t\t\t\tdate.setSeconds(estimate);\n\t\t\t\tconst time = date.toISOString().slice(11, 11 + 8);\n\t\t\t\tthis.timeLeft = t('{time} left', { time }); // TRANSLATORS time has the format 00:00:00\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.timeLeft = t('{seconds} seconds left', { seconds: estimate });\n\t\t},\n\n\t\tsetDestination(destination) {\n\t\t\tlogger.debug(`Destination path set to ${destination}`);\n\t\t\tthis.uploadManager.destination = destination;\n\t\t},\n\n\t\tsetRoot(path) {\n\t\t\tlogger.debug(`Root path set to ${path}`);\n\t\t\tthis.uploadManager.root = path;\n\t\t},\n\n\t\tsetContext(context) {\n\t\t\tlogger.debug('Context changed to', context);\n\t\t\tthis.newFileMenuEntries = getNewFileMenuEntries(context);\n\t\t},\n\t},\n};\n\nvar _uploader;\n/**\n * Get an Uploader instance\n */\nfunction getUploader() {\n const isPublic = document.querySelector('input[name=\"isPublic\"][value=\"1\"]') !== null;\n if (_uploader instanceof Uploader) {\n return _uploader;\n }\n // Init uploader\n _uploader = new Uploader(isPublic);\n return _uploader;\n}\n/**\n * Upload a file\n * This will init an Uploader instance if none exists.\n * You will be able to retrieve it with `getUploader`\n */\nfunction upload(destinationPath, file) {\n // Init uploader and start uploading\n const uploader = getUploader();\n uploader.upload(destinationPath, file);\n return uploader;\n}\n\nexport { Upload$1 as Upload, UploadPicker, Status$1 as UploadStatus, Status as UploaderStatus, getUploader, upload };\n//# sourceMappingURL=index.esm.js.map\n","import Queue from 'yocto-queue';\n\nexport default function pLimit(concurrency) {\n\tif (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tif (queue.size > 0) {\n\t\t\tqueue.dequeue()();\n\t\t}\n\t};\n\n\tconst run = async (fn, resolve, args) => {\n\t\tactiveCount++;\n\n\t\tconst result = (async () => fn(...args))();\n\n\t\tresolve(result);\n\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\tnext();\n\t};\n\n\tconst enqueue = (fn, resolve, args) => {\n\t\tqueue.enqueue(run.bind(undefined, fn, resolve, args));\n\n\t\t(async () => {\n\t\t\t// This function needs to wait until the next microtask before comparing\n\t\t\t// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously\n\t\t\t// when the run function is dequeued and called. The comparison in the if-statement\n\t\t\t// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.\n\t\t\tawait Promise.resolve();\n\n\t\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\t\tqueue.dequeue()();\n\t\t\t}\n\t\t})();\n\t};\n\n\tconst generator = (fn, ...args) => new Promise(resolve => {\n\t\tenqueue(fn, resolve, args);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount,\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size,\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue: () => {\n\t\t\t\tqueue.clear();\n\t\t\t},\n\t\t},\n\t});\n\n\treturn generator;\n}\n","'use strict';\n\nconst asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","'use strict';\n\nconst encoders = require('./encoders');\nconst decoders = require('./decoders');\nconst inherits = require('inherits');\n\nconst api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n}\n\nEntity.prototype._createNamed = function createNamed(Base) {\n const name = this.name;\n\n function Generated(entity) {\n this._initNamed(entity, name);\n }\n inherits(Generated, Base);\n Generated.prototype._initNamed = function _initNamed(entity, name) {\n Base.call(this, entity, name);\n };\n\n return new Generated(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","'use strict';\n\nconst inherits = require('inherits');\nconst Reporter = require('../base/reporter').Reporter;\nconst Buffer = require('safer-buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) {\n if (data instanceof DecoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n Buffer.isBuffer(data.base) &&\n data.constructor.name === 'DecoderBuffer' &&\n typeof data.offset === 'number' &&\n typeof data.length === 'number' &&\n typeof data.save === 'function' &&\n typeof data.restore === 'function' &&\n typeof data.isEmpty === 'function' &&\n typeof data.readUInt8 === 'function' &&\n typeof data.skip === 'function' &&\n typeof data.raw === 'function';\n\n return isCompatible;\n};\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n const res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n};\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n const res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n};\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n};\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!EncoderBuffer.isEncoderBuffer(item))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) {\n if (data instanceof EncoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n data.constructor.name === 'EncoderBuffer' &&\n typeof data.length === 'number' &&\n typeof data.join === 'function';\n\n return isCompatible;\n};\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = Buffer.alloc(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","'use strict';\n\nconst base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","'use strict';\n\nconst Reporter = require('../base/reporter').Reporter;\nconst EncoderBuffer = require('../base/buffer').EncoderBuffer;\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst assert = require('minimalistic-assert');\n\n// Supported tags\nconst tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nconst methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nconst overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent, name) {\n const state = {};\n this._baseState = state;\n\n state.name = name;\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nconst stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n const state = this._baseState;\n const cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n const res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n const state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n const clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n const state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n const state = this._baseState;\n\n // Filter children and args\n const children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n const res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n const value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n const state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n const state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n const state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n const state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n const state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n const state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n const state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n const state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n let result = state['default'];\n let present = true;\n\n let prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n let tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n const save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n let prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n const explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n const start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n let save;\n if (state.any)\n save = input.save();\n const body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any) {\n // no-op\n } else if (state.choice === null) {\n result = this._decodeGeneric(state.tag, input, options);\n } else {\n result = this._decodeChoice(input, options);\n }\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n const data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n const state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n const state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n const state = this._baseState;\n let result = null;\n let match = false;\n\n Object.keys(state.choice).some(function(key) {\n const save = input.save();\n const node = state.choice[key];\n try {\n const value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n const state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n const result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n let result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default'];\n else\n return;\n }\n\n // Encode children first\n let content = null;\n let primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n const prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n const res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n const child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n const state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n if (!state.any && state.choice === null) {\n const tag = state.implicit !== null ? state.implicit : state.tag;\n const cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n const state = this._baseState;\n\n const node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n const state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str);\n};\n","'use strict';\n\nconst inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n const state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n const state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n const state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n const state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n const state = this._reporterState;\n\n const prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n const state = this._reporterState;\n\n const now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n let err;\n const state = this._reporterState;\n\n const inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n const state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n}\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","'use strict';\n\n// Helper\nfunction reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n}\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = reverse(exports.tag);\n","'use strict';\n\nconst constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst bignum = require('bn.js');\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!DecoderBuffer.isDecoderBuffer(data)) {\n data = new DecoderBuffer(data, options);\n }\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n const state = buffer.save();\n const decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n const decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n let len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n const state = buffer.save();\n const res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n for (;;) {\n const tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n const len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n let res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len);\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n const result = [];\n while (!buffer.isEmpty()) {\n const possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n const res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n const unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n const raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n let str = '';\n for (let i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n const numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n const printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n let result;\n const identifiers = [];\n let ident = 0;\n let subident = 0;\n while (!buffer.isEmpty()) {\n subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n const first = (identifiers[0] / 40) | 0;\n const second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n let tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n const str = buffer.raw().toString();\n\n let year;\n let mon;\n let day;\n let hour;\n let min;\n let sec;\n if (tag === 'gentime') {\n year = str.slice(0, 4) | 0;\n mon = str.slice(4, 6) | 0;\n day = str.slice(6, 8) | 0;\n hour = str.slice(8, 10) | 0;\n min = str.slice(10, 12) | 0;\n sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n year = str.slice(0, 2) | 0;\n mon = str.slice(2, 4) | 0;\n day = str.slice(4, 6) | 0;\n hour = str.slice(6, 8) | 0;\n min = str.slice(8, 10) | 0;\n sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull() {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n const res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n const raw = buffer.raw();\n let res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n let tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n const cls = der.tagClass[tag >> 6];\n const primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n let oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n const tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n let len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n const num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (let i = 0; i < num; i++) {\n len <<= 8;\n const j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","'use strict';\n\nconst decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\n\nconst DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n const lines = data.toString().split(/[\\r\\n]+/g);\n\n const label = options.label.toUpperCase();\n\n const re = /^-----(BEGIN|END) ([^-]+)-----$/;\n let start = -1;\n let end = -1;\n for (let i = 0; i < lines.length; i++) {\n const match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n const base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9+/=]+/gi, '');\n\n const input = Buffer.from(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n const encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n const header = Buffer.alloc(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n let lenOctets = 1;\n for (let i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n const header = Buffer.alloc(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (let i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n const buf = Buffer.alloc(str.length * 2);\n for (let i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s.]+/g);\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n let size = 0;\n for (let i = 0; i < id.length; i++) {\n let ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n const objid = Buffer.alloc(size);\n let offset = objid.length - 1;\n for (let i = id.length - 1; i >= 0; i--) {\n let ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n let str;\n const date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getUTCFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getUTCFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n const numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = Buffer.from(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n let size = num.length;\n if (num.length === 0)\n size++;\n\n const out = Buffer.alloc(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0;\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n let size = 1;\n for (let i = num; i >= 0x100; i >>= 8)\n size++;\n\n const out = new Array(size);\n for (let i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(Buffer.from(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n const state = this._baseState;\n let i;\n if (state['default'] === null)\n return false;\n\n const data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n let res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","'use strict';\n\nconst encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n const buf = DEREncoder.prototype.encode.call(this, data);\n\n const p = buf.toString('base64');\n const out = [ '-----BEGIN ' + options.label + '-----' ];\n for (let i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","var BN = require('bn.js')\nvar randomBytes = require('randombytes')\n\nfunction blind (priv) {\n var r = getr(priv)\n var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed()\n return { blinder: blinder, unblinder: r.invm(priv.modulus) }\n}\n\nfunction getr (priv) {\n var len = priv.modulus.byteLength()\n var r\n do {\n r = new BN(randomBytes(len))\n } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2))\n return r\n}\n\nfunction crt (msg, priv) {\n var blinds = blind(priv)\n var len = priv.modulus.byteLength()\n var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus)\n var c1 = blinded.toRed(BN.mont(priv.prime1))\n var c2 = blinded.toRed(BN.mont(priv.prime2))\n var qinv = priv.coefficient\n var p = priv.prime1\n var q = priv.prime2\n var m1 = c1.redPow(priv.exponent1).fromRed()\n var m2 = c2.redPow(priv.exponent2).fromRed()\n var h = m1.isub(m2).imul(qinv).umod(p).imul(q)\n return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len)\n}\ncrt.getr = getr\n\nmodule.exports = crt\n","module.exports = require('./browser/algorithms.json')\n","var Buffer = require('safe-buffer').Buffer\nvar createHash = require('create-hash')\nvar stream = require('readable-stream')\nvar inherits = require('inherits')\nvar sign = require('./sign')\nvar verify = require('./verify')\n\nvar algorithms = require('./algorithms.json')\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex')\n algorithms[key.toLowerCase()] = algorithms[key]\n})\n\nfunction Sign (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hashType = data.hash\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Sign, stream.Writable)\n\nSign.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nSign.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nSign.prototype.sign = function signMethod (key, enc) {\n this.end()\n var hash = this._hash.digest()\n var sig = sign(hash, key, this._hashType, this._signType, this._tag)\n\n return enc ? sig.toString(enc) : sig\n}\n\nfunction Verify (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Verify, stream.Writable)\n\nVerify.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nVerify.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nVerify.prototype.verify = function verifyMethod (key, sig, enc) {\n if (typeof sig === 'string') sig = Buffer.from(sig, enc)\n\n this.end()\n var hash = this._hash.digest()\n return verify(sig, hash, key, this._signType, this._tag)\n}\n\nfunction createSign (algorithm) {\n return new Sign(algorithm)\n}\n\nfunction createVerify (algorithm) {\n return new Verify(algorithm)\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n}\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar createHmac = require('create-hmac')\nvar crt = require('browserify-rsa')\nvar EC = require('elliptic').ec\nvar BN = require('bn.js')\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction sign (hash, key, hashType, signType, tag) {\n var priv = parseKeys(key)\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n return ecSign(hash, priv)\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong private key type')\n return dsaSign(hash, priv, hashType)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = priv.modulus.byteLength()\n var pad = [0, 1]\n while (hash.length + pad.length + 1 < len) pad.push(0xff)\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) pad.push(hash[i])\n\n var out = crt(pad, priv)\n return out\n}\n\nfunction ecSign (hash, priv) {\n var curveId = curves[priv.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'))\n\n var curve = new EC(curveId)\n var key = curve.keyFromPrivate(priv.privateKey)\n var out = key.sign(hash)\n\n return Buffer.from(out.toDER())\n}\n\nfunction dsaSign (hash, priv, algo) {\n var x = priv.params.priv_key\n var p = priv.params.p\n var q = priv.params.q\n var g = priv.params.g\n var r = new BN(0)\n var k\n var H = bits2int(hash, q).mod(q)\n var s = false\n var kv = getKey(x, q, hash, algo)\n while (s === false) {\n k = makeKey(q, kv, algo)\n r = makeR(g, k, p, q)\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q)\n if (s.cmpn(0) === 0) {\n s = false\n r = new BN(0)\n }\n }\n return toDER(r, s)\n}\n\nfunction toDER (r, s) {\n r = r.toArray()\n s = s.toArray()\n\n // Pad values\n if (r[0] & 0x80) r = [0].concat(r)\n if (s[0] & 0x80) s = [0].concat(s)\n\n var total = r.length + s.length + 4\n var res = [0x30, total, 0x02, r.length]\n res = res.concat(r, [0x02, s.length], s)\n return Buffer.from(res)\n}\n\nfunction getKey (x, q, hash, algo) {\n x = Buffer.from(x.toArray())\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length)\n x = Buffer.concat([zeros, x])\n }\n var hlen = hash.length\n var hbits = bits2octets(hash, q)\n var v = Buffer.alloc(hlen)\n v.fill(1)\n var k = Buffer.alloc(hlen)\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n return { k: k, v: v }\n}\n\nfunction bits2int (obits, q) {\n var bits = new BN(obits)\n var shift = (obits.length << 3) - q.bitLength()\n if (shift > 0) bits.ishrn(shift)\n return bits\n}\n\nfunction bits2octets (bits, q) {\n bits = bits2int(bits, q)\n bits = bits.mod(q)\n var out = Buffer.from(bits.toArray())\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length)\n out = Buffer.concat([zeros, out])\n }\n return out\n}\n\nfunction makeKey (q, kv, algo) {\n var t\n var k\n\n do {\n t = Buffer.alloc(0)\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n t = Buffer.concat([t, kv.v])\n }\n\n k = bits2int(t, q)\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest()\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n } while (k.cmp(q) !== -1)\n\n return k\n}\n\nfunction makeR (g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)\n}\n\nmodule.exports = sign\nmodule.exports.getKey = getKey\nmodule.exports.makeKey = makeKey\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar BN = require('bn.js')\nvar EC = require('elliptic').ec\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction verify (sig, hash, key, signType, tag) {\n var pub = parseKeys(key)\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n return ecVerify(sig, hash, pub)\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong public key type')\n return dsaVerify(sig, hash, pub)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = pub.modulus.byteLength()\n var pad = [1]\n var padNum = 0\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff)\n padNum++\n }\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) {\n pad.push(hash[i])\n }\n pad = Buffer.from(pad)\n var red = BN.mont(pub.modulus)\n sig = new BN(sig).toRed(red)\n\n sig = sig.redPow(new BN(pub.publicExponent))\n sig = Buffer.from(sig.fromRed().toArray())\n var out = padNum < 8 ? 1 : 0\n len = Math.min(sig.length, pad.length)\n if (sig.length !== pad.length) out = 1\n\n i = -1\n while (++i < len) out |= sig[i] ^ pad[i]\n return out === 0\n}\n\nfunction ecVerify (sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'))\n\n var curve = new EC(curveId)\n var pubkey = pub.data.subjectPrivateKey.data\n\n return curve.verify(hash, sig, pubkey)\n}\n\nfunction dsaVerify (sig, hash, pub) {\n var p = pub.data.p\n var q = pub.data.q\n var g = pub.data.g\n var y = pub.data.pub_key\n var unpacked = parseKeys.signature.decode(sig, 'der')\n var s = unpacked.s\n var r = unpacked.r\n checkValue(s, q)\n checkValue(r, q)\n var montp = BN.mont(p)\n var w = s.invm(q)\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q)\n return v.cmp(r) === 0\n}\n\nfunction checkValue (b, q) {\n if (b.cmpn(0) <= 0) throw new Error('invalid sig')\n if (b.cmp(q) >= q) throw new Error('invalid sig')\n}\n\nmodule.exports = verify\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar 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 var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\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 var determiner;\n\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 var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(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');\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/*<replacement>*/\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/*</replacement>*/\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/*<replacement>*/\n\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n/*<replacement>*/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\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/*<replacement>*/\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/*</replacement>*/\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/* <replacement> */\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/* </replacement> */\n\n/*<replacement>*/\n\n\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n/*<replacement>*/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\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;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// 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('events').EventEmitter;\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\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\nSafeBuffer.prototype = Object.create(Buffer.prototype)\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","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '<EC Point Infinity>';\n return '<EC Point x: ' + this.x.fromRed().toString(16, 2) +\n ' y: ' + this.y.fromRed().toString(16, 2) +\n ' z: ' + this.z.fromRed().toString(16, 2) + '>';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '<EC Point Infinity>';\n return '<EC Point x: ' + this.x.fromRed().toString(16, 2) +\n ' z: ' + this.z.fromRed().toString(16, 2) + '>';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '<EC Point Infinity>';\n return '<EC Point x: ' + this.x.fromRed().toString(16, 2) +\n ' y: ' + this.y.fromRed().toString(16, 2) + '>';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '<EC JPoint Infinity>';\n return '<EC JPoint x: ' + this.x.toString(16, 2) +\n ' y: ' + this.y.toString(16, 2) +\n ' z: ' + this.z.toString(16, 2) + '>';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '<Key priv: ' + (this.priv && this.priv.toString(16, 2)) +\n ' pub: ' + (this.pub && this.pub.inspect()) + ' >';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array<Byte>} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array<Byte>} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array<Bytes>|Object} sig -\n* @param {Array<Bytes>|Point} [sig.R] - R point as Point or bytes\n* @param {Array<Bytes>|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array<Bytes>} [sig.Rencoded] - R point encoded\n* @param {Array<Bytes>} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar 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 var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\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 var determiner;\n\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 var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(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');\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/*<replacement>*/\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/*</replacement>*/\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/*<replacement>*/\n\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n/*<replacement>*/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\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/*<replacement>*/\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/*</replacement>*/\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/* <replacement> */\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/* </replacement> */\n\n/*<replacement>*/\n\n\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n/*<replacement>*/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\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;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// 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('events').EventEmitter;\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\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\nSafeBuffer.prototype = Object.create(Buffer.prototype)\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","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n'use strict'\n\nvar asn1 = require('asn1.js')\n\nexports.certificate = require('./certificate')\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('modulus').int(),\n this.key('publicExponent').int(),\n this.key('privateExponent').int(),\n this.key('prime1').int(),\n this.key('prime2').int(),\n this.key('exponent1').int(),\n this.key('exponent2').int(),\n this.key('coefficient').int()\n )\n})\nexports.RSAPrivateKey = RSAPrivateKey\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n this.seq().obj(\n this.key('modulus').int(),\n this.key('publicExponent').int()\n )\n})\nexports.RSAPublicKey = RSAPublicKey\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\nexports.PublicKey = PublicKey\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('none').null_().optional(),\n this.key('curve').objid().optional(),\n this.key('params').seq().obj(\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int()\n ).optional()\n )\n})\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPrivateKey').octstr()\n )\n})\nexports.PrivateKey = PrivateKeyInfo\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').seq().obj(\n this.key('id').objid(),\n this.key('decrypt').seq().obj(\n this.key('kde').seq().obj(\n this.key('id').objid(),\n this.key('kdeparams').seq().obj(\n this.key('salt').octstr(),\n this.key('iters').int()\n )\n ),\n this.key('cipher').seq().obj(\n this.key('algo').objid(),\n this.key('iv').octstr()\n )\n )\n ),\n this.key('subjectPrivateKey').octstr()\n )\n})\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int(),\n this.key('pub_key').int(),\n this.key('priv_key').int()\n )\n})\nexports.DSAPrivateKey = DSAPrivateKey\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n this.int()\n})\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('privateKey').octstr(),\n this.key('parameters').optional().explicit(0).use(ECParameters),\n this.key('publicKey').optional().explicit(1).bitstr()\n )\n})\nexports.ECPrivateKey = ECPrivateKey\n\nvar ECParameters = asn1.define('ECParameters', function () {\n this.choice({\n namedCurve: this.objid()\n })\n})\n\nexports.signature = asn1.define('signature', function () {\n this.seq().obj(\n this.key('r').int(),\n this.key('s').int()\n )\n})\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict'\n\nvar asn = require('asn1.js')\n\nvar Time = asn.define('Time', function () {\n this.choice({\n utcTime: this.utctime(),\n generalTime: this.gentime()\n })\n})\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n this.seq().obj(\n this.key('type').objid(),\n this.key('value').any()\n )\n})\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('parameters').optional(),\n this.key('curve').objid().optional()\n )\n})\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n this.setof(AttributeTypeValue)\n})\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n this.seqof(RelativeDistinguishedName)\n})\n\nvar Name = asn.define('Name', function () {\n this.choice({\n rdnSequence: this.use(RDNSequence)\n })\n})\n\nvar Validity = asn.define('Validity', function () {\n this.seq().obj(\n this.key('notBefore').use(Time),\n this.key('notAfter').use(Time)\n )\n})\n\nvar Extension = asn.define('Extension', function () {\n this.seq().obj(\n this.key('extnID').objid(),\n this.key('critical').bool().def(false),\n this.key('extnValue').octstr()\n )\n})\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n this.seq().obj(\n this.key('version').explicit(0).int().optional(),\n this.key('serialNumber').int(),\n this.key('signature').use(AlgorithmIdentifier),\n this.key('issuer').use(Name),\n this.key('validity').use(Validity),\n this.key('subject').use(Name),\n this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n this.key('issuerUniqueID').implicit(1).bitstr().optional(),\n this.key('subjectUniqueID').implicit(2).bitstr().optional(),\n this.key('extensions').explicit(3).seqof(Extension).optional()\n )\n})\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n this.seq().obj(\n this.key('tbsCertificate').use(TBSCertificate),\n this.key('signatureAlgorithm').use(AlgorithmIdentifier),\n this.key('signatureValue').bitstr()\n )\n})\n\nmodule.exports = X509Certificate\n","// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m\nvar evp = require('evp_bytestokey')\nvar ciphers = require('browserify-aes')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = function (okey, password) {\n var key = okey.toString()\n var match = key.match(findProc)\n var decrypted\n if (!match) {\n var match2 = key.match(fullRegex)\n decrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64')\n } else {\n var suite = 'aes' + match[1]\n var iv = Buffer.from(match[2], 'hex')\n var cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64')\n var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key\n var out = []\n var cipher = ciphers.createDecipheriv(suite, cipherKey, iv)\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n decrypted = Buffer.concat(out)\n }\n var tag = key.match(startRegex)[1]\n return {\n tag: tag,\n data: decrypted\n }\n}\n","var asn1 = require('./asn1')\nvar aesid = require('./aesid.json')\nvar fixProc = require('./fixProc')\nvar ciphers = require('browserify-aes')\nvar compat = require('pbkdf2')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = parseKeys\n\nfunction parseKeys (buffer) {\n var password\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase\n buffer = buffer.key\n }\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer)\n }\n\n var stripped = fixProc(buffer, password)\n\n var type = stripped.tag\n var data = stripped.data\n var subtype, ndata\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo\n // falls through\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der')\n }\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey\n return {\n type: 'ec',\n data: ndata\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der')\n data = decrypt(data, password)\n // falls through\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der')\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der')\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der')\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n }\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der')\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n }\n default: throw new Error('unknown key type ' + type)\n }\n}\nparseKeys.signature = asn1.signature\nfunction decrypt (data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]\n var iv = data.algorithm.decrypt.cipher.iv\n var cipherText = data.subjectPrivateKey\n var keylen = parseInt(algo.split('-')[1], 10) / 8\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')\n var cipher = ciphers.createDecipheriv(algo, key, iv)\n var out = []\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n return Buffer.concat(out)\n}\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","var Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar toBuffer = require('./to-buffer')\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\nvar nextTick\nfunction getNextTick () {\n if (nextTick) {\n return nextTick\n }\n if (global.process && global.process.nextTick) {\n nextTick = global.process.nextTick\n } else if (global.queueMicrotask) {\n nextTick = global.queueMicrotask\n } else if (global.setImmediate) {\n nextTick = global.setImmediate\n } else {\n nextTick = global.setTimeout\n }\n return nextTick\n}\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n getNextTick()(function () {\n callback(null, out)\n })\n }, function (e) {\n getNextTick()(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n getNextTick()(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n return\n }\n\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n","var defaultEncoding\n/* istanbul ignore next */\nif (global.process && global.process.browser) {\n defaultEncoding = 'utf-8'\n} else if (global.process && global.process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","/* eslint-disable node/no-deprecated-api */\n\n'use strict'\n\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\nvar safer = {}\n\nvar key\n\nfor (key in buffer) {\n if (!buffer.hasOwnProperty(key)) continue\n if (key === 'SlowBuffer' || key === 'Buffer') continue\n safer[key] = buffer[key]\n}\n\nvar Safer = safer.Buffer = {}\nfor (key in Buffer) {\n if (!Buffer.hasOwnProperty(key)) continue\n if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue\n Safer[key] = Buffer[key]\n}\n\nsafer.Buffer.prototype = Buffer.prototype\n\nif (!Safer.from || Safer.from === Uint8Array.from) {\n Safer.from = function (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('The \"value\" argument must not be of type number. Received type ' + typeof value)\n }\n if (value && typeof value.length === 'undefined') {\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)\n }\n return Buffer(value, encodingOrOffset, length)\n }\n}\n\nif (!Safer.alloc) {\n Safer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('The \"size\" argument must be of type number. Received type ' + typeof size)\n }\n if (size < 0 || size >= 2 * (1 << 30)) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n var buf = Buffer(size)\n if (!fill || fill.length === 0) {\n buf.fill(0)\n } else if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n return buf\n }\n}\n\nif (!safer.kStringMaxLength) {\n try {\n safer.kStringMaxLength = process.binding('buffer').kStringMaxLength\n } catch (e) {\n // we can't determine kStringMaxLength in environments where process.binding\n // is unsupported, so let's not set it\n }\n}\n\nif (!safer.constants) {\n safer.constants = {\n MAX_LENGTH: safer.kMaxLength\n }\n if (safer.kStringMaxLength) {\n safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength\n }\n}\n\nmodule.exports = safer\n","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n"],"names":["user","logger","setApp","build","setUid","uid","NewFileMenu","_entries","registerEntry","entry","this","validateEntry","push","unregisterEntry","entryIndex","getEntryIndex","id","splice","warn","entries","getEntries","context","filter","if","findIndex","displayName","iconSvgInline","iconClass","Error","undefined","templateName","handler","getNewFileMenu","window","_nc_newfilemenu","debug","addNewFileMenuEntry","removeNewFileMenuEntry","getNewFileMenuEntries","CancelError","constructor","reason","super","name","isCanceled","promiseState","Object","freeze","pending","Symbol","canceled","resolved","rejected","PCancelable","static","userFunction","arguments_","resolve","reject","onCancel","then","executor","Promise","description","defineProperties","shouldReject","get","set","boolean","value","error","onFulfilled","onRejected","catch","finally","onFinally","cancel","length","state","setPrototypeOf","prototype","TimeoutError","message","AbortError","getDOMException","errorMessage","globalThis","DOMException","getAbortedReason","signal","_PriorityQueue_queue","__classPrivateFieldGet","receiver","kind","f","TypeError","has","call","PriorityQueue","enqueue","run","options","element","priority","size","index","array","comparator","first","count","step","Math","trunc","it","lowerBound","a","b","dequeue","item","shift","map","WeakMap","_PQueue_instances","_PQueue_carryoverConcurrencyCount","_PQueue_isIntervalIgnored","_PQueue_intervalCount","_PQueue_intervalCap","_PQueue_interval","_PQueue_intervalEnd","_PQueue_intervalId","_PQueue_timeoutId","_PQueue_queue","_PQueue_queueClass","_PQueue_pendingCount","_PQueue_concurrency","_PQueue_isPaused","_PQueue_throwOnTimeout","_PQueue_doesIntervalAllowAnother_get","_PQueue_doesConcurrentAllowAnother_get","_PQueue_next","_PQueue_emitEvents","_PQueue_onResumeInterval","_PQueue_isIntervalPaused_get","_PQueue_tryToStartAnother","_PQueue_initializeIntervalIfNeeded","_PQueue_onInterval","_PQueue_processQueue","_PQueue_onEvent","__classPrivateFieldSet","timeoutError","PQueue","_a","_b","_c","_d","add","defineProperty","enumerable","configurable","writable","carryoverConcurrencyCount","intervalCap","Number","POSITIVE_INFINITY","interval","concurrency","autoStart","queueClass","toString","isFinite","timeout","throwOnTimeout","newConcurrency","async","fn","aborted","operation","promise","milliseconds","fallback","timer","cancelablePromise","sign","customTimers","setTimeout","clearTimeout","addEventListener","clear","pTimeout","result","emit","functions","all","function_","start","pause","limit","sizeBy","isPaused","WeakSet","now","Date","delay","clearInterval","canInitializeInterval","job","setInterval","event","listener","off","on","Node","next","Queue","node","current","iterator","isFile","obj","sanitizeSVG","svg","svgText","Buffer","File","fileReader","FileReader","onload","readAsText","div","document","createElement","innerHTML","svgEl","firstElementChild","hasScriptAttr","Array","from","attributes","find","attr","startsWith","getElementsByTagName","env","process","assign","e","readerLimit","isInteger","queue","activeCount","args","generator","bind","pendingCount","clearQueue","reader","uploadData","url","data","onUploadProgress","method","getChunk","file","type","Blob","readAsArrayBuffer","slice","getMaxChunksSize","maxChunkSize","g","OC","appConfig","files","max_chunk_size","Status$1","Status","Upload$1","_path","_isChunked","_chunks","_size","_uploaded","_startTime","_status","INITIALIZED","_controller","_response","path","chunked","chunks","ceil","AbortController","isChunked","uploaded","startTime","response","ASSEMBLING","FINISHED","UPLOADING","getTime","status","abort","CANCELLED","Uploader","rootFolder","destinationFolder","_isPublic","_uploadQueue","_jobQueue","_queueSize","_queueProgress","_queueStatus","IDLE","isPublic","root","destination","maxChunksSize","replace","generateRemoteUrl","reset","PAUSED","updateStats","info","progress","upload","reduce","partialSum","destinationPath","destinationFile","disabledChunkUpload","blob","request","CanceledError","FAILED","tempUrl","initChunkWorkspace","chunksQueue","chunk","bufferStart","bufferEnd","min","headers","Destination","onIdle","t$1","n","r","s","prepend","d","singleTag","i","container","querySelector","u","indexOf","c","charCodeAt","substring","styleSheet","cssText","appendChild","createTextNode","setAttribute","t","keys","insertAdjacentElement","commonjsGlobal","self","getDefaultExportFromCjs","x","__esModule","hasOwnProperty","getAugmentedNamespace","default","apply","arguments","forEach","k","getOwnPropertyDescriptor","def$1","vue_runtime_common_dev","hasRequiredVue_runtime_common_dev","hasRequiredVue_runtime_common","simpleEta","RC","max","autostart","ignoreSameProgress","rate","lastTimestamp","lastProgress","historyTimeConstant","previousOutput","input","dt","report","timestamp","deltaTimestamp","currentRate","estimate","Infinity","estimatedTime","NcActionButton$1","exports","vue_runtime_common","requireVue_runtime_common_dev","emptyObject","isArray","isUndef","v","isDef","isTrue","isPrimitive","isFunction","isObject","_toString","toRawType","isPlainObject","isRegExp","isValidArrayIndex","val","parseFloat","String","floor","isPromise","JSON","stringify","toNumber","isNaN","makeMap","str","expectsLowerCase","create","list","split","toLowerCase","isBuiltInTag","isReservedAttribute","remove$2","arr","hasOwn","key","cached","cache","camelizeRE","camelize","_","toUpperCase","capitalize","charAt","hyphenateRE","hyphenate","Function","ctx","boundFn","l","_length","toArray","ret","extend","to","_from","toObject","res","noop","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","every","keysA","keysB","looseIndexOf","once","called","hasChanged","y","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","config","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","_lifecycleHooks","unicodeRegExp","isReserved","def","bailRE","RegExp","source","hasProto","inBrowser","UA","navigator","userAgent","isIE","test","isIE9","isEdge","isIOS","isFF","match","nativeWatch","watch","_isServer","supportsPassive","opts","isServerRendering","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","hasSymbol","Reflect","ownKeys","_Set","Set","currentInstance","setCurrentInstance","vm","_scope","VNode","tag","children","text","elm","componentOptions","asyncFactory","ns","fnContext","fnOptions","fnScopeId","componentInstance","parent","raw","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","child","createEmptyVNode","createTextVNode","cloneVNode","vnode","cloned","uid$2","Dep","subs","addSub","sub","removeSub","depend","target","addDep","onTrack","effect","notify","sort","onTrigger","update","targetStack","pushTarget","popTarget","pop","arrayProto","arrayMethods","original","ob","__ob__","inserted","observeArray","dep","arrayKeys","getOwnPropertyNames","NO_INIITIAL_VALUE","shouldObserve","toggleObserving","mockDep","Observer","shallow","mock","vmCount","__proto__","defineReactive","observe","ssrMockReactivity","isRef","isExtensible","__v_skip","customSetter","property","getter","setter","childOb","dependArray","newVal","newValue","oldValue","isReadonly","_isVue","del","shallowReactive","makeReactive","existingOb","isCollectionType","isReactive","isShallow","__v_isShallow","__v_isReadonly","RefFlag","__v_isRef","createRef","rawValue","ref","proxyWithRefUnwrap","toRef","object","defaultValue","readonly","createReadonly","existingFlag","existingProxy","proxy","getPrototypeOf","defineReadonlyProperty","WATCHER","WATCHER_CB","WATCHER_GETTER","watchPostEffect","doWatch","flush","INITIAL_WATCHER_VALUE","cb","immediate","deep","warnInvalidSource","instance","invokeWithErrorHandling","cleanup","forceTrigger","isMultiSource","some","traverse","_isDestroyed","onCleanup","baseGetter","watcher","onStop","Watcher","lazy","noRecurse","active","post","queueWatcher","_isMounted","buffer","_preWatchers","$once","teardown","activeEffectScope","EffectScope","detached","effects","cleanups","scopes","currentEffectScope","stop","fromParent","last","resolveProvided","existing","_provided","parentProvides","$parent","normalizeEvent","passive","capture","createFnInvoker","fns","invoker","updateListeners","oldOn","remove","createOnceHandler","cur","old","params","mergeVNodeHook","hookKey","hook","oldHook","wrappedHook","merged","checkProp","hash","altKey","preserve","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","lastIndex","_isVList","renderList","render","done","renderSlot","fallbackRender","props","bindObject","scopedSlotFn","$scopedSlots","nodes","$slots","slot","$createElement","resolveFilter","resolveAsset","$options","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","attrs","domProps","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","tree","staticRenderFns","_renderProxy","markStatic","markOnce","markStaticNode","bindObjectListeners","ours","concat","resolveScopedSlots","hasDynamicKeys","contentHashKey","$stable","$key","bindDynamicKeys","baseObj","values","prependModifier","symbol","installRenderHelpers","_o","_n","_s","_l","_t","_q","_i","_m","_f","_k","_v","_e","_u","_g","_p","resolveSlots","slots","isWhitespace","normalizeScopedSlots","ownerVm","scopedSlots","normalSlots","prevScopedSlots","hasNormalSlots","isStable","_normalized","$hasNormal","normalizeScopedSlot","proxyNormalSlot","normalized","createSetupContext","exposeCalled","_attrsProxy","syncSetupProxy","$attrs","listeners","_listenersProxy","$listeners","_slotsProxy","syncSetupSlots","initSlotsProxy","$emit","expose","exposed","prev","changed","defineProxyAttr","getContext","_setupContext","currentRenderingInstance","ensureCtor","comp","base","toStringTag","getFirstComponentChild","createElement$1","normalizationType","alwaysNormalize","is","simpleNormalizeChildren","$vnode","nativeOn","pre","createComponent","applyNS","style","class","registerDeepBindings","_createElement","force","handleError","err","hooks","errorCaptured","globalHandleError","_handled","logError","console","isUsingMicroTask","callbacks","timerFunc","flushCallbacks","copies","p","MutationObserver","setImmediate","counter","observer","textNode","characterData","nextTick","_resolve","createLifeCycle","hookName","mergeLifecycleHook","injectHook","formatName","onBeforeMount","onMounted","onBeforeUpdate","onUpdated","onBeforeUnmount","onUnmounted","onActivated","onDeactivated","onServerPrefetch","onRenderTracked","onRenderTriggered","injectErrorCapturedHook","version","vca","defineComponent","shallowRef","toRefs","unref","proxyRefs","objectWithRefs","customRef","factory","triggerRef","reactive","isProxy","markRaw","toRaw","observed","shallowReadonly","computed","getterOrOptions","debugOptions","onlyGetter","dirty","evaluate","watchEffect","watchSyncEffect","effectScope","onScopeDispose","getCurrentScope","provide","inject","treatDefaultAsFactory","provides","h","getCurrentInstance","useSlots","useAttrs","useListeners","mergeDefaults","defaults","opt","useCssModule","mod","useCssVars","el","$el","vars","_setupProxy","nodeType","setProperty","defineAsyncComponent","loader","loadingComponent","errorComponent","suspensible","onError","userOnError","pendingRequest","retries","load","thisRequest","component","loading","onErrorCaptured","seenObjects","_traverse","seen","isA","isFrozen","depId","mark","measure","target$1","uid$1","expOrFn","isRenderWatcher","scope","recordEffectScope","_vm","_watcher","sync","before","deps","newDeps","depIds","newDepIds","expression","segments","parsePath","cleanupDeps","tmp","_isBeingDestroyed","perf","clearMarks","clearMeasures","startTag","endTag","add$1","$on","remove$1","$off","createOnceHandler$1","_target","onceHandler","updateComponentListeners","oldListeners","activeInstance","isUpdatingChildComponent","setActiveInstance","prevActiveInstance","isInInactiveTree","_inactive","activateChildComponent","direct","_directInactive","$children","callHook$1","deactivateChildComponent","setContext","handlers","j","_hasHookEvent","activatedChildren","circular","waiting","flushing","currentFlushTimestamp","getNow","createEvent","timeStamp","sortCompareFn","flushSchedulerQueue","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","resolveInject","provideKey","provideDefault","FunctionalRenderContext","contextVm","_original","isCompiled","_compiled","needNormalization","injections","_scopeId","cloneAndMarkFunctionalResult","renderContext","clone","devtoolsMeta","mergeProps","getComponentName","__name","_componentTag","componentVNodeHooks","init","hydrating","keepAlive","mountedNode","prepatch","_isComponent","_parentVnode","inlineTemplate","createComponentInstanceForVnode","$mount","oldVnode","propsData","parentVnode","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","_renderChildren","prevVNode","_vnode","prevListeners","_parentListeners","_props","propKeys","_propKeys","propOptions","validateProp","$forceUpdate","updateChildComponent","insert","destroy","$destroy","hooksToMerge","baseCtor","_base","cid","errorComp","owner","owners","loadingComp","timerLoading","timerTimeout","forceRender","renderCompleted","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","model","prop","callback","transformModel","keyInLowerCase","tip","formatComponentName","extractPropsFromVNodeData","functional","vnodes","createFunctionalComponent","abstract","toMerge","_merged","mergeHook","installComponentHooks","f1","f2","generateComponentTrace","hasConsole","classifyRE","classify","msg","trace","includeFile","$root","__file","repeat","currentRecursiveSequence","join","strats","mergeData","toVal","fromVal","mergeDataOrFn","parentVal","childVal","instanceData","defaultData","dedupeHooks","mergeAssets","assertObjectType","defaultStrat","methods","validateComponentName","mergeOptions","components","checkComponents","normalizeProps","normalizeInject","dirs","directives","normalizeDirectives$1","extends","mixins","mergeField","strat","warnMissing","assets","camelizedId","PascalCaseId","absent","booleanIndex","getTypeIndex","Boolean","stringIndex","getType","getPropDefaultValue","prevShouldObserve","required","valid","expectedTypes","assertedType","assertType","expectedType","haveExpectedTypes","receivedType","isExplicable","elem","isBoolean","styleValue","getInvalidTypeMessage","validator","assertProp","simpleCheckRE","functionTypeCheckRE","isSameType","len","EXPLICABLE_TYPES","initProxy","allowedGlobals","warnNonPresent","warnReservedPrefix","hasProxy","Proxy","isBuiltInModifier","hasHandler","isAllowed","$data","getHandler","_withStripped","sharedPropertyDefinition","sourceKey","initState","propsOptions","isRoot","initProps$1","setup","setupResult","_setupState","__sfc","initSetup","initMethods","_data","getData","initData","watchers","_computedWatchers","isSSR","userDef","computedWatcherOptions","defineComputed","initComputed$1","createWatcher","initWatch","shouldCache","createComputedGetter","createGetterInvoker","$watch","superOptions","modifiedOptions","modified","latest","sealed","sealedOptions","resolveModifiedOptions","extendOptions","Vue","_init","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","Comp","initProps","initComputed","mixin","use","_getComponentName","matches","pattern","pruneCache","keepAliveInstance","pruneCacheEntry","_uid","vnodeComponentOptions","initInternalComponent","_self","$refs","initLifecycle","_events","initEvents","parentData","initRender","initInjections","provideOption","provided","initProvide","_name","initMixin$1","dataDef","propsDef","$set","$delete","stateMixin","hookRE","cbs","lowerCaseEvent","eventsMixin","_update","prevEl","prevVnode","restoreActiveInstance","__patch__","__vue__","wrapper","lifecycleMixin","$nextTick","_render","renderError","renderMixin","patternTypes","builtInComponents","KeepAlive","include","exclude","cacheVNode","vnodeToCache","keyToCache","parseInt","created","destroyed","mounted","updated","configDef","util","delete","observable","plugin","installedPlugins","_installedPlugins","unshift","install","initUse","initMixin","definition","initAssetRegisters","initGlobalAPI","ssrContext","acceptValue","isEnumeratedAttr","isValidContentEditableValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","isFalsyAttrValue","genClassForVnode","parentNode","childNode","mergeClassData","staticClass","dynamicClass","stringifyClass","renderClass","stringified","stringifyArray","stringifyObject","namespaceMap","math","isHTMLTag","isSVG","unknownElementCache","isTextInputType","nodeOps","tagName","multiple","createElementNS","namespace","createComment","insertBefore","newNode","referenceNode","removeChild","nextSibling","setTextContent","textContent","setStyleScope","scopeId","registerRef","isRemoval","refValue","$refsValue","isFor","refInFor","_isString","_isRef","refs","includes","setSetupRef","emptyNode","sameVnode","typeA","typeB","sameInputType","createKeyToOldIdx","beginIdx","endIdx","updateDirectives","isCreate","isDestroy","oldDirs","normalizeDirectives","newDirs","dirsWithInsert","dirsWithPostpatch","oldDir","dir","oldArg","arg","callHook","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","setupDef","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","_v_attr_proxy","setAttr","removeAttributeNS","removeAttribute","isInPre","baseSetAttr","convertEnumeratedValue","setAttributeNS","__ieph","blocker","stopImmediatePropagation","removeEventListener","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","klass","useMicrotaskFix","attachedTimestamp","_wrapper","currentTarget","ownerDocument","updateDOMListeners","change","normalizeEvents","events","svgContainer","updateDOMProps","oldProps","childNodes","_value","strCur","shouldUpdateValue","firstChild","checkVal","composing","notInFocus","activeElement","isNotInFocusAndDirty","_vModifiers","number","trim","isDirtyWithModifiers","parseStyleText","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","cssVarRE","importantRE","setProp","normalizedName","normalize","vendorNames","emptyStyle","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","checkChild","styleData","getStyle","whitespaceRE","addClass","classList","getAttribute","removeClass","tar","resolveTransition","css","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","requestAnimationFrame","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","propCount","getTransitionInfo","ended","end","onEnd","transformRE","styles","getComputedStyle","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","enter","toggleDisplay","_leaveCb","cancelled","transition","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","duration","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","checkDuration","expectsCSS","userWantsControl","getHookArgumentsLength","show","pendingNode","_pending","isValidDuration","leave","rm","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","patch","backend","modules","removeNode","inVPre","ignore","creatingElmInVPre","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","isReactivated","initComponent","innerNode","activate","reactivateComponent","setScope","createChildren","invokeCreateHooks","pendingInsert","isPatchable","checkDuplicateKeys","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","ch","removeAndInvokeRemoveHook","childElm","createRmCb","seenKeys","findIdxInOld","oldCh","patchVnode","removeOnly","hydrate","newCh","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","updateChildren","postpatch","invokeInsertHook","initial","hydrationBailed","isRenderedModule","assertNodeMatch","hasChildNodes","childrenMatch","fullInvoke","isInitialPatch","isRealElement","hasAttribute","oldElm","patchable","createPatchFunction","vmodel","trigger","directive","binding","_vOptions","setSelected","getValue","onCompositionStart","onCompositionEnd","prevOptions","curOptions","o","hasNoMatchingOption","actuallySetSelected","isMultiple","selected","option","selectedIndex","initEvent","dispatchEvent","locateNode","originalDisplay","__vOriginalDisplay","display","unbind","platformDirectives","transitionProps","mode","getRealChild","compOptions","extractTransitionData","placeholder","rawChild","isNotTextNode","isVShowDirective","Transition","hasParentTransition","_leaving","oldRawChild","oldChild","isSameChild","delayedLeave","moveClass","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","removed","pos","getBoundingClientRect","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","body","offsetHeight","moved","transform","WebkitTransform","transitionDuration","_moveCb","propertyName","_hasMove","cloneNode","newPos","oldPos","dx","left","dy","top","platformComponents","HTMLUnknownElement","HTMLElement","updateComponent","template","watcherOptions","preWatchers","mountComponent","query","requireVue_runtime_common","Z","beforeUpdate","getText","isLongText","icon","title","closeAfterClick","ariaLabel","emits","isIconUrl","URL","onClick","closeMenu","sources","names","mappings","sourcesContent","sourceRoot","btoa","unescape","encodeURIComponent","identifier","A","media","sourceMap","supports","layer","references","updater","byIndex","domAPI","HTMLIFrameElement","contentDocument","head","setAttributes","nc","insertStyleElement","styleTagTransform","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","shadowRoot","_injectStyles","beforeCreate","disabled","isFocusable","C","locals","m","role","focusable","click","backgroundImage","global$1","hasRequiredGlobal","NcActionButton","NcActions$1","gettext$1","es_regexp_exec","requireGlobal","check","fails","hasRequiredFails","descriptors","hasRequiredDescriptors","functionBindNative","hasRequiredFunctionBindNative","functionCall","hasRequiredFunctionCall","objectGetOwnPropertyDescriptor","requireFails","exec","requireDescriptors","requireFunctionBindNative","requireFunctionCall","NATIVE_BIND","hasRequiredObjectPropertyIsEnumerable","createPropertyDescriptor","hasRequiredCreatePropertyDescriptor","functionUncurryThis","hasRequiredFunctionUncurryThis","classofRaw","hasRequiredClassofRaw","indexedObject","hasRequiredIndexedObject","isNullOrUndefined","hasRequiredIsNullOrUndefined","requireObjectCoercible","hasRequiredRequireObjectCoercible","toIndexedObject","hasRequiredToIndexedObject","isCallable","hasRequiredIsCallable","isObject$1","hasRequiredIsObject","getBuiltIn","hasRequiredGetBuiltIn","objectIsPrototypeOf","hasRequiredObjectIsPrototypeOf","engineUserAgent","hasRequiredEngineUserAgent","engineV8Version","hasRequiredEngineV8Version","symbolConstructorDetection","hasRequiredSymbolConstructorDetection","useSymbolAsUid","hasRequiredUseSymbolAsUid","isSymbol","hasRequiredIsSymbol","tryToString","hasRequiredTryToString","aCallable","hasRequiredACallable","getMethod","hasRequiredGetMethod","ordinaryToPrimitive","hasRequiredOrdinaryToPrimitive","objectPropertyIsEnumerable","requireCreatePropertyDescriptor","bitmap","requireFunctionUncurryThis","FunctionPrototype","uncurryThis","requireClassofRaw","stringSlice","requireIsNullOrUndefined","requireRequireObjectCoercible","$TypeError","requireToIndexedObject","IndexedObject","classof","$Object","propertyIsEnumerable","requireIndexedObject","requireIsCallable","argument","requireIsObject","documentAll","requireGetBuiltIn","global","aFunction","requireObjectIsPrototypeOf","isPrototypeOf","requireEngineV8Version","requireEngineUserAgent","Deno","versions","v8","requireSymbolConstructorDetection","V8_VERSION","getOwnPropertySymbols","sham","requireUseSymbolAsUid","NATIVE_SYMBOL","requireIsSymbol","USE_SYMBOL_AS_UID","$Symbol","requireTryToString","$String","requireACallable","requireGetMethod","V","P","func","requireOrdinaryToPrimitive","pref","valueOf","isPure","hasRequiredIsPure","defineGlobalProperty","hasRequiredDefineGlobalProperty","sharedStore","hasRequiredSharedStore","hasRequiredShared","toObject$1","hasRequiredToObject","hasOwnProperty_1","hasRequiredHasOwnProperty","uid$3","hasRequiredUid","wellKnownSymbol","hasRequiredWellKnownSymbol","toPrimitive","hasRequiredToPrimitive","toPropertyKey","hasRequiredToPropertyKey","documentCreateElement","hasRequiredDocumentCreateElement","ie8DomDefine","hasRequiredIe8DomDefine","hasRequiredObjectGetOwnPropertyDescriptor","shared","requireDefineGlobalProperty","requireSharedStore","SHARED","store","requireShared","IS_PURE","copyright","license","requireToObject","requireHasOwnProperty","requireUid","postfix","random","requireWellKnownSymbol","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","requireToPrimitive","TO_PRIMITIVE","exoticToPrim","requireToPropertyKey","requireDocumentCreateElement","EXISTS","requireIe8DomDefine","DESCRIPTORS","requireObjectGetOwnPropertyDescriptor","propertyIsEnumerableModule","$propertyIsEnumerable","NASHORN_BUG","descriptor","requireObjectPropertyIsEnumerable","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","O","v8PrototypeDefineBug","hasRequiredV8PrototypeDefineBug","anObject","hasRequiredAnObject","hasRequiredObjectDefineProperty","createNonEnumerableProperty","hasRequiredCreateNonEnumerableProperty","objectDefineProperty","requireV8PrototypeDefineBug","requireAnObject","requireObjectDefineProperty","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","ENUMERABLE","CONFIGURABLE","WRITABLE","Attributes","requireCreateNonEnumerableProperty","definePropertyModule","functionName","hasRequiredFunctionName","inspectSource","hasRequiredInspectSource","weakMapBasicDetection","hasRequiredWeakMapBasicDetection","sharedKey","hasRequiredSharedKey","hiddenKeys","hasRequiredHiddenKeys","internalState","hasRequiredInternalState","hasRequiredMakeBuiltIn","defineBuiltIn","hasRequiredDefineBuiltIn","makeBuiltIn","requireFunctionName","getDescriptor","PROPER","requireInspectSource","functionToString","requireSharedKey","requireHiddenKeys","requireInternalState","NATIVE_WEAK_MAP","requireWeakMapBasicDetection","OBJECT_ALREADY_INITIALIZED","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","TYPE","requireMakeBuiltIn","CONFIGURABLE_FUNCTION_NAME","InternalStateModule","enforceInternalState","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn$1","arity","requireDefineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","mathTrunc","hasRequiredMathTrunc","toIntegerOrInfinity","hasRequiredToIntegerOrInfinity","toAbsoluteIndex","hasRequiredToAbsoluteIndex","toLength","hasRequiredToLength","lengthOfArrayLike","hasRequiredLengthOfArrayLike","arrayIncludes","hasRequiredArrayIncludes","objectKeysInternal","hasRequiredObjectKeysInternal","enumBugKeys","hasRequiredEnumBugKeys","hasRequiredObjectGetOwnPropertyNames","objectGetOwnPropertyNames","requireToIntegerOrInfinity","requireMathTrunc","requireToAbsoluteIndex","integer","requireToLength","requireLengthOfArrayLike","requireObjectKeysInternal","createMethod","IS_INCLUDES","$this","fromIndex","requireArrayIncludes","requireEnumBugKeys","hasRequiredObjectGetOwnPropertySymbols","ownKeys$1","hasRequiredOwnKeys","copyConstructorProperties","hasRequiredCopyConstructorProperties","isForced_1","hasRequiredIsForced","_export","hasRequired_export","toStringTagSupport","hasRequiredToStringTagSupport","hasRequiredClassof","toString$1","hasRequiredToString","regexpFlags","hasRequiredRegexpFlags","regexpStickyHelpers","hasRequiredRegexpStickyHelpers","objectGetOwnPropertySymbols","requireOwnKeys","getOwnPropertyNamesModule","internalObjectKeys","requireObjectGetOwnPropertyNames","getOwnPropertySymbolsModule","requireCopyConstructorProperties","getOwnPropertyDescriptorModule","exceptions","require_export","isForced","replacement","feature","detection","POLYFILL","NATIVE","string","requireIsForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","requireToStringTagSupport","requireClassof","TO_STRING_TAG_SUPPORT","TO_STRING_TAG","CORRECT_ARGUMENTS","tryGet","callee","requireToString","requireRegexpFlags","that","hasIndices","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","objectKeys","hasRequiredObjectKeys","hasRequiredObjectDefineProperties","html","hasRequiredHtml","objectCreate","hasRequiredObjectCreate","regexpUnsupportedDotAll","hasRequiredRegexpUnsupportedDotAll","regexpUnsupportedNcg","hasRequiredRegexpUnsupportedNcg","regexpExec","hasRequiredRegexpExec","hasRequiredEs_regexp_exec","objectDefineProperties","requireObjectKeys","requireHtml","requireObjectCreate","activeXDocument","definePropertiesModule","Properties","requireObjectDefineProperties","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","domain","src","contentWindow","open","F","requireRegexpExec","re1","re2","stickyHelpers","$RegExp","UNSUPPORTED_Y","re","MISSED_STICKY","BROKEN_CARET","requireRegexpStickyHelpers","UNSUPPORTED_DOT_ALL","flags","requireRegexpUnsupportedDotAll","UNSUPPORTED_NCG","groups","requireRegexpUnsupportedNcg","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","group","charsAdded","strCopy","requireEs_regexp_exec","$","proto","functionApply","hasRequiredFunctionApply","fixRegexpWellKnownSymbolLogic","hasRequiredFixRegexpWellKnownSymbolLogic","stringMultibyte","hasRequiredStringMultibyte","advanceStringIndex","hasRequiredAdvanceStringIndex","getSubstitution","hasRequiredGetSubstitution","regexpExecAbstract","hasRequiredRegexpExecAbstract","hasRequiredEs_string_replace","es_string_replace","requireAdvanceStringIndex","CONVERT_TO_STRING","second","S","position","codeAt","requireStringMultibyte","requireGetSubstitution","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","captures","namedCaptures","tailPos","symbols","requireEs_string_replace","requireFunctionApply","fixRegExpWellKnownSymbolLogic","SPECIES","RegExpPrototype","KEY","FORCED","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","uncurriedNativeRegExpMethod","nativeMethod","regexp","arg2","forceStringMethod","uncurriedNativeMethod","$exec","requireFixRegexpWellKnownSymbolLogic","regExpExec","R","requireRegexpExecAbstract","REPLACE","stringIndexOf","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","maybeCallNative","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","rx","functionalReplace","fullUnicode","results","accumulatedResult","nextSourcePosition","replacerArgs","hasRequiredEs_object_defineProperty","es_object_defineProperty","requireEs_object_defineProperty","objectToString","hasRequiredObjectToString","hasRequiredEs_object_toString","es_object_toString","requireEs_object_toString","requireObjectToString","regexpGetFlags","hasRequiredRegexpGetFlags","hasRequiredEs_regexp_toString","lodash_get","hasRequiredLodash_get","plurals","hasRequiredPlurals","gettext","hasRequiredGettext$1","es_regexp_toString","requireEs_regexp_toString","PROPER_FUNCTION_NAME","$toString","getRegExpFlags","regExpFlags","requireRegexpGetFlags","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","requireLodash_get","HASH_UNDEFINED","funcTag","genTag","reIsDeepProp","reIsPlainProp","reLeadingDot","rePropName","reEscapeChar","reIsHostCtor","freeGlobal","freeSelf","funcProto","objectProto","coreJsData","maskSrcKey","funcToString","reIsNative","Map","getNative","nativeCreate","symbolProto","symbolToString","Hash","ListCache","MapCache","assocIndexOf","other","baseGet","isKey","stringToPath","toKey","baseIsNative","isHostObject","toSource","getMapData","__data__","memoize","baseToString","quote","resolver","memoized","Cache","isObjectLike","requirePlurals","ach","examples","plural","sample","nplurals","pluralsText","pluralsFunc","af","ak","am","an","ar","arn","ast","ay","az","be","bg","bn","bo","br","brx","bs","ca","cgg","cs","csb","cy","da","de","doi","dz","en","eo","es","et","eu","fa","ff","fi","fil","fo","fr","fur","fy","ga","gd","gl","gu","gun","ha","he","hi","hne","hr","hu","hy","ja","jbo","jv","ka","kk","km","kn","ko","ku","kw","ky","lb","ln","lo","lt","lv","mai","mfe","mg","mi","mk","ml","mn","mni","mnk","mr","ms","mt","my","nah","nap","nb","ne","nl","nn","nso","oc","or","pa","pap","pl","pms","ps","pt","ro","ru","rw","sah","sat","sco","sd","se","si","sk","sl","so","son","sq","sr","su","sv","sw","ta","te","tg","th","ti","tk","tr","tt","ug","uk","ur","uz","vi","wa","wo","yo","zh","hasRequiredDist","hasRequiredGettext","requireGettext","getGettextBuilder","GettextBuilder","_nodeGettext","Gettext","catalogs","locale","sourceLocale","eventName","eventData","addTranslations","translations","setLocale","setTextDomain","msgid","dnpgettext","dgettext","ngettext","msgidPlural","dngettext","pgettext","msgctxt","dpgettext","npgettext","translation","defaultTranslation","_getTranslation","getLanguageCode","msgstr","getComment","comments","textdomain","setlocale","addTextdomain","requireGettext$1","getLocale","documentElement","dataset","getCanonicalLocale","getDayNames","dayNames","getDayNamesMin","dayNamesMin","getDayNamesShort","dayNamesShort","getFirstDay","firstDay","getLanguage","lang","getMonthNames","monthNames","getMonthNamesShort","monthNamesShort","translate","app","L10N","translatePlural","textSingular","textPlural","requireDist","_classCallCheck","Constructor","_defineProperties","_createClass","protoProps","staticProps","language","setLanguage","GettextWrapper","gt","translated","placeholders","subtitudePlaceholders","singular","getBasePlacement","placement","getAlignment","getMainAxisFromPlacement","getLengthFromAxis","axis","computeCoordsFromPlacement","_ref","reference","floating","commonX","width","commonY","height","coords","mainAxis","getSideObjectFromPadding","padding","right","bottom","expandPaddingObject","rectToClientRect","rect","detectOverflow","middlewareArguments","platform","rects","elements","strategy","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","getClippingClientRect","isElement","contextElement","getDocumentElement","elementClientRect","convertOffsetParentRelativeRectToViewportRelativeRect","offsetParent","getOffsetParent","min$1","max$1","within","min$1$1","max$1$1","hash$1","getOppositePlacement","getAlignmentSides","isStart","mainAlignmentSide","main","cross","getOppositeAlignmentPlacement","allPlacements","acc","basePlacement","autoPlacement","_middlewareData$autoP","_middlewareData$autoP2","_middlewareData$autoP3","_middlewareData$autoP4","_middlewareData$autoP5","_placementsSortedByLe","middlewareData","alignment","allowedPlacements","autoAlignment","detectOverflowOptions","skip","placements","getPlacementList","overflow","currentIndex","currentPlacement","currentOverflows","allOverflows","overflows","nextPlacement","placementsSortedByLeastOverflow","placementThatFitsOnAllSides","flip","_middlewareData$flip","_middlewareData$flip2","initialPlacement","checkMainAxis","crossAxis","checkCrossAxis","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","flipAlignment","oppositePlacement","getExpandedPlacements","overflowsData","side","_middlewareData$flip$","_middlewareData$flip3","nextIndex","resetPlacement","_overflowsData$slice$","offset","diffCoords","multiplier","convertValueToCoords","isWindow","getWindow","defaultView","getComputedStyle$1","getNodeName","nodeName","isHTMLElement","Element","isShadowRoot","ShadowRoot","isScrollParent","overflowX","overflowY","isTableElement","isContainingBlock","isFirefox","perspective","contain","willChange","round","includeScale","clientRect","scaleX","scaleY","offsetWidth","getNodeScroll","scrollLeft","pageXOffset","scrollTop","pageYOffset","getWindowScrollBarX","getRectRelativeToOffsetParent","isOffsetParentAnElement","isScaled","scroll","offsets","offsetRect","clientLeft","clientTop","getParentNode","assignedSlot","host","getTrueOffsetParent","currentNode","getContainingBlock","getDimensions","getScrollParent","getScrollParents","_node$ownerDocument","scrollParent","isBody","win","visualViewport","updatedList","getClientRectFromClippingParent","clippingParent","clientWidth","clientHeight","abs","innerWidth","scale","offsetLeft","offsetTop","getViewportRect","getInnerBoundingClientRect","_element$ownerDocumen","scrollWidth","scrollHeight","direction","getDocumentRect","getClippingParents","clippingParents","clipperElement","rootNode","getRootNode","contains","getElementRects","_ref2","_ref3","firstClippingParent","clippingRect","accRect","_ref4","getClientRects","_ref5","computePosition","middleware","statefulPlacement","nextX","nextY","computePosition$1","bind$1","config$1","isIE$1","isIOS$1","supportsPassive$1","_loop_1","name_1","name_2","key_1","key_2","p_1","counter_1","textNode_1","performance_1","_this","owners_1","sync_1","timerLoading_1","timerTimeout_1","forceRender_1","reject_1","res_1","parent_1","matches$1","i_1","blocker_1","attachedTimestamp_1","original_1","event_1","nextFrame$1","i_2","i_3","i_5","i_6","i_7","i_8","i_9","insert_1","i_10","prevOptions_1","curOptions_1","delayedLeave_1","el_1","__defProp","__defProps","__getOwnPropDescs","getOwnPropertyDescriptors","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","__spreadProps","distance","skidding","instantMove","disposeTimeout","popperTriggers","preventOverflow","overflowPadding","arrowPadding","arrowOverflow","themes","tooltip","triggers","hideTriggers","hide","handleResize","loadingContent","dropdown","autoHide","menu","$extend","getDefaultConfig","theme","themeConfig","getAllParentThemes","MSStream","SHOW_EVENT_MAP","hover","focus","touch","HIDE_EVENT_MAP","removeFromArray","shownPoppers","hidingPopper","shownPoppersByTheme","getShownPoppersByTheme","Element$1","defaultPropFactory","$props","PROVIDE_KEY","PrivatePopper","targetNodes","popperNode","shown","showGroup","ariaId","positioningDisabled","showTriggers","popperShowTriggers","popperHideTriggers","eagerMount","popperClass","computeTransformOrigin","autoMinSize","autoSize","autoMaxSize","autoBoundaryMaxSize","shiftCrossAxis","parentPopper","isShown","isMounted","skipTransition","classes","showFrom","showTo","hideFrom","hideTo","arrow","centerOffset","transformOrigin","shownChildren","lastAutoHide","popperId","randomId","shouldMountContent","slotData","onResize","hasPopperShowTriggerHover","dispose","$_ensureTeleport","$_computePosition","$_isDisposed","$_detachPopperNode","activated","$_autoShowHide","deactivated","beforeDestroy","skipDelay","lockedChild","$_pendingHide","$_scheduleShow","$_showFrameLocked","skipAiming","$_hideInProgress","$_isAimingPopper","lockedChildTimer","$_scheduleHide","$_events","$_preventShow","$_referenceNode","$_targetNodes","ELEMENT_NODE","$_popperNode","$_innerNode","$_arrowNode","$_swapTargetAttrs","$_addEventListeners","$_removeEventListeners","$_updateParentShownChildren","options2","isPlacementAuto","limiter","mainAxisCoord","crossAxisCoord","maxSide","limitedCoords","arrowDimensions","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","center","_a2","maxWidth","maxHeight","_middlewareData$size","isEnd","heightSide","widthSide","xMin","xMax","yMin","yMax","dimensions","$_scheduleTimer","$_applyHide","$_applyShow","$_computeDelay","$_disposeTimer","$_applyShowEffect","$_registerEventListeners","bounds","popperWrapper","parentBounds","$_applyAttrsToTarget","popover","disposeTime","handleShow","usedByTooltip","$_registerTriggerListeners","handleHide","eventType","eventMap","commonTriggers","customTrigger","filterEventType","newList","$_refreshListeners","$_handleGlobalClose","closePopover","attrFrom","attrTo","referenceBounds","mouseX","mouseY","popperBounds","vectorX","mousePreviousX","vectorY","mousePreviousY","newVectorLength","edgeX","edgeY","lineIntersectsLine","handleGlobalMousedown","popper","popperContent","$_mouseDownContains","handleGlobalClose","preventClose","$_containsGlobalTarget","isContainingEventTarget","shouldAutoHide","closeAllPopover","parent2","getAutoHideResult","x1","y1","x2","y2","x3","y3","x4","y4","uA","uB","initCompat","ua","msie","rv","edge","getInternetExplorerVersion","normalizeComponent$1","script2","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","originalRender","clientX","clientY","__vue_script__","emitOnMount","ignoreWidth","ignoreHeight","_w","_h","emitSize","_resizeObject","addResizeHandlers","removeResizeHandlers","compareAndNotify","__vue_render__","tabindex","__vue_component__","plugin$1","Vue2","GlobalVue$1","PrivateThemeClass","themeClass","$resetCss","getThemeClasses","__vue2_script$5","ResizeObserver","toPx","normalizeComponent","scriptExports","render2","staticRenderFns2","functionalTemplate","injectStyles","__cssModules$5","__component__$5","keyCode","__vue2_injectStyles$5","PrivatePopperContent","PrivatePopperMethods","__vue2_script$4","Popper","PopperContent","vPopperTheme","getTargetNodes","render$1","__cssModules$4","__component__$4","__vue2_injectStyles$4","PrivatePopperWrapper","__vue2_script$3","__cssModules$3","__component__$3","__vue2_render$2","__vue2_staticRenderFns$2","__vue2_injectStyles$3","PrivateDropdown","__vue2_script$2","__cssModules$2","__component__$2","__vue2_render$1","__vue2_staticRenderFns$1","__vue2_injectStyles$2","PrivateMenu","__vue2_script$1","__cssModules$1","__component__$1","__vue2_render","__vue2_staticRenderFns","__vue2_injectStyles$1","PrivateTooltip","__vue2_script","asyncContent","isContentAsync","finalContent","fetchContent","$_fetchId","$_isShown","$_loading","fetchId","onResult","onShow","onHide","__cssModules","__component__","__vue2_injectStyles","PrivateTooltipDirective","TARGET_CLASS","getOptions","getPlacement","createTooltip","tooltipApp","$_popper","otherOptions","__objRest","mountTarget","destroyTooltip","$_popperOldShown","PrivateVTooltip","addListeners","onTouchStart","removeListeners","onTouchEnd","onTouchCancel","$_vclosepopover_touch","$_closePopoverModifiers","changedTouches","$_vclosepopover_touchPoint","firstTouch","screenY","screenX","PrivateVClosePopper","VTooltip","VClosePopper","Dropdown","Menu","PopperMethods","PopperWrapper","ThemeClass","Tooltip","TooltipDirective","$_vTooltipInstalled","GlobalVue","require$$1","hideAllPoppers","candidateSelectors","candidateSelector","NoElement","msMatchesSelector","webkitMatchesSelector","getCandidates","includeContainer","candidates","querySelectorAll","getCandidatesIteratively","elementsToCheck","assigned","assignedElements","nestedCandidates","flatten","getShadowRoot","validShadowRoot","shadowRootFilter","_nestedCandidates","getTabindex","isScope","tabIndex","isContentEditable","sortOrderedTabbables","documentOrder","isInput","isNonTabbableRadio","isRadio","radioSet","radioScope","form","queryRadios","CSS","escape","checked","getCheckedRadio","isTabbableRadio","isZeroArea","_node$getBoundingClie","isHidden","displayCheck","visibility","nodeUnderDetails","parentElement","originalNode","_nodeRootHost","nodeRootHost","attached","_nodeRootHost2","isNodeAttached","isNodeMatchingSelectorFocusable","isHiddenInput","isDetailsWithSummary","isDisabledFromFieldset","isNodeMatchingSelectorTabbable","isValidShadowRootTabbable","shadowHostNode","sortByOrder","regularTabbables","orderedTabbables","candidateTabindex","sortable","tabbable","isTabbable","focusableCandidateSelector","enumerableOnly","sym","_objectSpread2","_defineProperty","trapQueue","activeFocusTraps","activateTrap","trap","activeTrap","trapIndex","deactivateTrap","unpause","idx","valueOrHandler","_len","_key","getActualTarget","composedPath","focusTrap_esm","createFocusTrap","userOptions","doc","returnFocusOnDeactivate","escapeDeactivates","delayInitialFocus","containers","containerGroups","tabbableGroups","nodeFocusedBeforeActivation","mostRecentlyFocusedNode","paused","delayInitialFocusTimer","getOption","configOverrideOptions","optionName","configOptionName","findContainerIndex","tabbableNodes","getNodeForOption","optionValue","_len2","_key2","getInitialFocusNode","firstTabbableGroup","firstTabbableNode","updateTabbableNodes","tabbableOptions","focusableNodes","lastTabbableNode","nextTabbableNode","forward","nodeIdx","reverse","tryFocus","preventScroll","select","isSelectableInput","getReturnFocusNode","previousActiveElement","checkPointerDown","clickOutsideDeactivates","deactivate","returnFocus","allowOutsideClick","preventDefault","checkFocusIn","targetContained","Document","checkKey","isEscapeEvent","isTabEvent","destinationNode","containerIndex","containerGroup","shiftKey","startOfGroupIndex","destinationGroupIndex","lastOfGroupIndex","_destinationGroupIndex","checkTab","checkClick","activateOptions","onActivate","onPostActivate","checkCanFocusTrap","finishActivation","deactivateOptions","onDeactivate","onPostDeactivate","checkCanReturnFocus","finishDeactivation","updateContainerElements","containerElements","elementsAsArray","require$$2","DotsHorizontal","fillColor","require$$4","module","nativeType","wide","href","exact","rootElement","hasText","hasIcon","iconOnly","textOnly","iconAndText","buttonClassObject","w","popoverBaseClass","focusTrap","clearFocusTrap","useFocusTrap","regeneratorRuntime","wrap","abrupt","$focusTrap","afterShow","afterHide","detectLocale","Actions","Activities","Choose","Close","Custom","Flags","Global","Next","Objects","Previous","Search","Settings","Submit","Symbols","Favorite","items","Open","pluralId","msgid_plural","addTranslation","M","NcButton","NcPopover","forceMenu","forceTitle","menuTitle","primary","defaultIcon","boundariesElement","inline","opened","focusIndex","triggerBtnType","isValidSingleAction","openMenu","menuButton","onOpen","focusFirstAction","onMouseFocusAction","closest","focusAction","onKeydown","focusPreviousAction","focusNextAction","focusLastAction","removeCurrentActive","preventIfEvent","stopPropagation","onFocus","onBlur","auto","blur","keydown","mousemove","N","z","E","T","B","D","I","G","NcActions","NcButton$1","NcProgressBar$1","NcProgressBar","Cancel","Plus","Upload","gtBuilder","TRANSLATIONS","json","ActionIcon","cleanSvg","uploadManager","getUploader","_uploader","UploadPicker","isUploading","newFileMenuEntries","addLabel","uploadLabel","hasFailure","timeLeft","cancelLabel","accept","onPick","eta","totalQueueSize","uploadedQueueSize","isAssembling","updateStatus","setDestination","setRoot","oldQueue","date","setSeconds","time","toISOString","seconds","asn1","bignum","define","constants","decoders","encoders","inherits","Entity","_createNamed","Base","Generated","entity","_initNamed","_getDecoder","enc","decode","_getEncoder","encode","reporter","Reporter","DecoderBuffer","isBuffer","EncoderBuffer","isEncoderBuffer","byteLength","isDecoderBuffer","save","restore","isEmpty","readUInt8","fail","bytes","_reporterState","out","alloc","copy","assert","tags","_baseState","reverseArgs","choice","optional","any","useDecoder","explicit","implicit","_wrap","stateProps","cstate","equal","_useArgs","num","newKey","_decode","wrapResult","prevObj","present","prevKey","enterKey","_peekTag","isError","_decodeGeneric","_decodeChoice","enterObject","_decodeTag","track","_getUse","leaveObject","exitKey","leaveKey","_decodeList","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeBool","_decodeInt","_use","_createEncoderBuffer","_encode","_encodeValue","_skipDefault","primitive","_encodeChoice","_encodePrimitive","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool","_isNumstr","_isPrintstr","errors","ReporterError","rethrow","pathLen","inherited","stack","partial","captureStackTrace","tagClass","tagClassByName","tagByName","_reverse","der","DERDecoder","DERNode","derDecodeTag","buf","oct","tagStr","derDecodeLen","decodedTag","_skipUntilEnd","decoder","possibleEnd","unused","fromCharCode","readUInt16BE","numstr","printstr","relative","identifiers","ident","subident","year","mon","day","hour","sec","UTC","pem","PEMDecoder","lines","label","base64","DEREncoder","two","encodedTag","encodeTag","header","lenOctets","writeUInt16BE","objid","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","numArray","dataBuffer","defaultBuffer","PEMEncoder","ctor","superCtor","super_","TempCtor","BN","endian","isBN","negative","words","red","wordSize","parseHex4Bits","parseHexByte","parseBase","mul","cmp","_initNumber","_initArray","_parseHex","_parseBase","strip","limbLen","limbPow","total","word","imuln","_iaddn","pow","dest","_expand","_normSign","inspect","zeros","groupSizes","groupBases","smallMulTo","carry","ncarry","rword","maxJ","groupSize","groupBase","isZero","modn","idivn","toJSON","toBuffer","toArrayLike","ArrayType","reqLength","littleEndian","q","andln","iushrn","clz32","_countBits","_zeroBits","bitLength","zeroBits","toTwos","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","comb10MulTo","mid","a0","al0","ah0","a1","al1","ah1","a2","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","b1","bl1","bh1","b2","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","jumboMulTo","FFTM","mulp","mulTo","hncarry","bigMulTo","makeRBT","revBin","rb","permute","rbt","rws","iws","rtws","itws","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","ie","io","guessLen13b","odd","conjugate","normalize13b","ws","convert13b","stub","ph","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","toBitArray","iushln","bits","carryMask","newCarry","ishln","hint","extended","mask","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","bhi","diff","qj","divmod","positive","divn","umod","divRound","dm","half","r2","egcd","isEven","yp","xp","im","isOdd","jm","gcd","_invmp","delta","cmpn","invm","bincn","ucmp","gtn","gten","gte","ltn","lten","lte","eqn","eq","Red","toRed","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","sqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","_strip","output","outLen","mod3","one","nOne","lpow","inv","wnd","currentLen","mont","move","_move","for","modrn","allocUnsafe","allocate","_toArrayLikeLE","_toArrayLikeBE","isNegNum","Rand","rand","generate","_rand","getBytes","Uint8Array","getByte","crypto","getRandomValues","msCrypto","randomBytes","asUInt32Array","readUInt32BE","scrubVec","cryptBlock","keySchedule","SUB_MIX","SBOX","nRounds","t0","t1","t2","t3","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s0","s1","s2","s3","ksRow","RCON","INV_SBOX","INV_SUB_MIX","xi","sx","x8","AES","_reset","blockSize","keySize","keyWords","ksRows","invKeySchedule","ik","ksR","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","encryptBlock","writeUInt32BE","decryptBlock","m1","scrub","aes","Transform","GHASH","incr32","StreamCipher","iv","decrypt","_cipher","ck","_ghash","_finID","ghash","toPad","ivBits","tail","writeUIntBE","calcIv","_prev","_cache","_secCache","_decrypt","_alen","_mode","_authTag","_called","rump","encrypt","_final","final","xorTest","getAuthTag","setAuthTag","setAAD","ciphers","deciphers","modes","createCipher","Cipher","createCipheriv","Cipheriv","createDecipher","Decipher","createDecipheriv","Decipheriv","listCiphers","getCiphers","AuthCipher","MODES","ebtk","Splitter","_last","_autopadding","suite","password","thing","padded","unpad","setAutoPadding","setTo","autoPadding","PADDING","equals","padBuff","writeUInt8","ZEROES","fromArray","block","_multiply","lsbVi","Vi","Zi","abl","bl","pad","encryptStart","encryptByte","byteParam","shiftIn","getBlock","chunkNum","modeModules","ECB","CBC","CFB","CFB8","CFB1","OFB","CTR","GCM","DES","aesModes","desModes","keyLen","ivLen","CipherBase","des","instantiate","EDE","modeName","_des","des3","getr","priv","modulus","prime1","prime2","crt","blinds","blinder","publicExponent","unblinder","blind","blinded","c1","c2","qinv","coefficient","exponent1","m2","exponent2","createHash","stream","verify","algorithms","Sign","algorithm","Writable","_hashType","_hash","_tag","_signType","Verify","createSign","createVerify","_write","digest","sig","createHmac","EC","parseKeys","curves","getKey","algo","hlen","hbits","bits2int","bits2octets","fill","obits","makeKey","kv","makeR","hashType","signType","curve","curveId","keyFromPrivate","privateKey","toDER","ecSign","priv_key","H","dsaSign","checkValue","pub","pubkey","subjectPrivateKey","ecVerify","pub_key","unpacked","signature","montp","dsaVerify","padNum","codes","createErrorType","code","NodeError","_Base","subClass","superClass","arg1","arg3","getMessage","oneOf","expected","determiner","search","substr","this_len","endsWith","Duplex","Readable","allowHalfOpen","readable","onend","_writableState","onEndNT","highWaterMark","getBuffer","_readableState","PassThrough","_transform","encoding","ReadableState","EElistenerCount","emitter","Stream","OurUint8Array","debugUtil","debuglog","StringDecoder","createReadableStreamAsyncIterator","BufferList","destroyImpl","getHighWaterMark","_require$codes","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","isDuplex","objectMode","readableObjectMode","pipes","pipesCount","flowing","endEmitted","reading","needReadable","emittedReadable","readableListening","resumeScheduled","emitClose","autoDestroy","defaultEncoding","awaitDrain","readingMore","read","_read","_destroy","readableAddChunk","addToFront","skipChunkCheck","er","emitReadable","emitReadable_","onEofChunk","chunkInvalid","_uint8ArrayToBuffer","addChunk","maybeReadMore","_undestroy","undestroy","setEncoding","MAX_HWM","howMuchToRead","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","listenerCount","resume","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","wState","finished","xs","nOrig","doRead","pipe","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","removeListener","onclose","onfinish","ondrain","onerror","ondata","cleanedUp","needDrain","pipeOnDrain","prependListener","dests","ev","addListener","removeAllListeners","asyncIterator","_fromList","iterable","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","_transformState","transforming","writecb","writechunk","rs","needTransform","writeencoding","_flush","prefinish","err2","CorkedRequest","finish","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","WritableState","internalUtil","deprecate","realHasInstance","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","writableObjectMode","finalCalled","ending","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","writev","_writev","doWrite","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","rState","hasInstance","writeAfterEnd","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","iter","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","lastPromise","wrapForNext","_this2","_Object$create","custom","hasStrings","_getString","_getBuffer","_objectSpread","depth","customInspect","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","readableDestroyed","writableDestroyed","ERR_STREAM_PREMATURE_CLOSE","eos","onlegacyfinish","writableEnded","readableEnded","onrequest","req","setHeader","isRequest","ERR_MISSING_ARGS","destroyer","closed","popCallback","streams","destroys","ERR_INVALID_OPT_VALUE","duplexKey","hwm","highWaterMarkFrom","pipeline","copyProps","dst","SafeBuffer","encodingOrOffset","allocUnsafeSlow","SlowBuffer","hashMode","_finalOrDigest","__final","_decoder","_encoding","inputEnc","outputEnc","outData","fin","elliptic","ECDH","aliases","secp256k1","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1","curveType","ec","formatReturnValue","p256","secp256r1","secp192r1","p384","p521","generateKeys","format","genKeyPair","getPublicKey","computeSecret","inenc","keyFromPublic","getPublic","getPrivate","getX","getPrivateKey","setPublicKey","_importPublic","setPrivateKey","_priv","_importPrivate","MD5","RIPEMD160","sha","alg","Legacy","md5","ZEROS","Hmac","blocksize","_alg","ipad","_ipad","opad","_opad","rng","pseudoRandomBytes","prng","algos","algoKeys","hashes","getHashes","pbkdf2","pbkdf2Sync","dh","DiffieHellmanGroup","createDiffieHellmanGroup","getDiffieHellman","createDiffieHellman","DiffieHellman","createECDH","publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt","rf","randomFill","randomFillSync","createCredentials","utils","CBCState","_cbcInit","_cbcState","inp","inOff","outOff","superProto","bufferOff","_updateDecrypt","_updateEncrypt","_buffer","_flushBuffer","inputOff","outputOff","_finalEncrypt","_finalDecrypt","_pad","_unpad","DESState","_desState","deriveKeys","shiftTable","kL","kR","pc1","r28shl","pc2","ip","_encrypt","lStart","rStart","keyL","keyR","expand","substitute","rip","EDEState","k1","k2","k3","_edeState","inL","inR","outL","outR","pc2table","sTable","permuteTable","padSplit","generatePrime","DH","ENCODINGS","gen","genc","millerRabin","TWENTYFOUR","ELEVEN","TEN","THREE","SEVEN","_pub","primeCache","malleable","setGenerator","__prime","_primeLen","_primeCode","hex","rem","simpleSieve","fermatTest","checkPrime","__gen","_gen","secret","getPrime","front","getGenerator","findPrime","ONE","TWO","FIVE","FOUR","_getPrimes","n2","eddsa","getNAF","getJSF","BaseCurve","conf","zero","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","precomputed","point","validate","_fixedNafMul","doubles","_getDoubles","naf","nafW","repr","jpoint","mixedAdd","points","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","jsf","jb","decodePoint","pointFromX","encodeCompressed","compact","getY","precompute","power","beta","_getBeta","_hasDoubles","dbl","EdwardsCurve","twisted","mOneA","dd","oneC","Point","zOne","_mulA","_mulC","rhs","lhs","pointFromY","isInfinity","fromJSON","_extDbl","nx","ny","nt","nz","_projDbl","_extAdd","_projAdd","mulAdd","jmulAdd","zi","eqXToP","xc","short","edwards","MontCurve","i4","a24","aa","bb","diffAdd","jumlAdd","ShortCurve","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","isRed","inf","JPoint","lambda","betas","_getEndoRoots","lambdas","basis","vec","_getEndoBasis","ntinv","prevR","aprxSqrt","len1","_endoSplit","v1","v2","p1","p2","q1","q2","ax","_endoWnafMulAdd","npoints","ncoeffs","endoMul","parse","obj2point","ys1","dyinv","_precompute","negate","zinv","zinv2","pz2","z2","u1","u2","h2","h3","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","c8","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","ee","yyu4","kbase","z3","pz3","zs","PresetCurve","defineCurve","sha256","sha384","sha512","HmacDRBG","KeyPair","Signature","nh","keyPair","fromPrivate","fromPublic","drbg","pers","persEnc","entropy","hmacStrength","entropyEnc","nonce","ns2","_truncateToN","truncOnly","bkey","ns1","kp","kpX","recoveryParam","canonical","sinv","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Q","Qprime","privEnc","pubEnc","derive","_importDER","Position","place","getLength","octetLen","rmPadding","constructLength","octets","log","LN2","slen","backHalf","parseBytes","EDDSA","pointClass","encodingLength","keyFromSecret","hashInt","messagePrefix","Rencoded","encodePoint","s_","pubBytes","makeSignature","SG","intFromLE","fromSecret","lastIx","normed","xIsOdd","encodeInt","decodeInt","isPoint","cachedProperty","_secret","_pubBytes","privBytes","getSecret","_R","_S","_Rencoded","_Sencoded","Sencoded","toBytes","toHex","minAssert","minUtils","zero2","m8","d1","d2","m14","m24","computer","prefix","Events","EE","evt","_eventsCount","clearEvent","EventEmitter","eventNames","prefixed","salt","keyBits","RangeError","used","keyStart","ivStart","HashBase","_block","_blockSize","_blockOffset","_finalized","throwIfNotStringOrBuffer","_digest","common","ripemd","hmac","sha1","sha224","ripemd160","BlockHash","pendingTotal","outSize","padLength","_delta8","_delta32","join32","inner","outer","rotl32","sum32","sum32_3","sum32_4","K","Kh","Ah","Bh","Ch","Dh","Eh","rh","sh","toHex32","split32","shaCommon","sum32_5","ft_1","sha1_K","SHA1","W","SHA256","SHA224","ch32","maj32","s0_256","s1_256","g0_256","g1_256","sha256_K","T1","T2","SHA512","SHA384","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","sha512_K","ch64_hi","xh","xl","yh","yl","ch64_lo","zl","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","ah","al","bh","cl","dl","eh","fh","fl","gh","hh","hl","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","rotr32","p32","isSurrogatePair","htonl","zero8","predResist","minEntropy","_reseed","reseedInterval","nonceEnc","seed","_hmac","kmac","reseed","addEnc","ARRAY16","rotl","fnF","fnG","fnH","fnI","readInt32LE","writeUInt32LE","writeInt32LE","brorand","MillerRabin","_randbelow","min_bytes","_randrange","rone","n1","rn1","getDivisor","certificate","RSAPrivateKey","seq","int","RSAPublicKey","PublicKey","AlgorithmIdentifier","bitstr","null_","PrivateKeyInfo","octstr","PrivateKey","EncryptedPrivateKeyInfo","EncryptedPrivateKey","DSAPrivateKey","DSAparam","ECPrivateKey","ECParameters","namedCurve","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","SubjectPublicKeyInfo","RelativeDistinguishedName","setof","RDNSequence","seqof","Name","rdnSequence","Validity","Extension","bool","TBSCertificate","X509Certificate","findProc","startRegex","fullRegex","evp","okey","decrypted","cipherText","cipherKey","cipher","match2","aesid","fixProc","compat","passphrase","subtype","ndata","stripped","tbsCertificate","subjectPublicKeyInfo","subjectPublicKey","kde","kdeparams","iters","keylen","parameters","ZERO_BUF","checkParameters","subtle","toBrowser","checks","getNextTick","queueMicrotask","browserPbkdf2","iterations","importKey","deriveBits","resolvePromise","browser","prom","checkNative","resp","MAX_ALLOC","sizes","rmd160","saltLen","shaFunc","rmd160Func","getDigest","ipad1","ipad2","DK","block1","destPos","hLen","U","ArrayBuffer","isView","i2ops","mgf","withPublic","zBuffer","iHash","maskedSeed","maskedDb","db","dif","compare","oaep","pkcs1","publicKey","paddedMsg","mLen","hLen2","dblen","nonZero","MAX_BYTES","MAX_UINT32","generated","oldBrowser","safeBuffer","randombytes","kBufferMaxLength","kMaxLength","kMaxUint32","assertOffset","assertSize","actualFill","ourBuf","uint","zr","fn1","fn2","fn3","fn4","fn5","cr","dr","tl","safer","Safer","kStringMaxLength","MAX_LENGTH","MAX_STRING_LENGTH","finalSize","_finalSize","accum","remainder","lowBits","highBits","Algorithm","Sha","rotl30","ft","readInt32BE","writeInt32BE","Sha1","rotl5","Sha256","Sha224","maj","sigma0","sigma1","gamma0","Sha384","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","writeInt64BE","Sha512","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h"],"sourceRoot":""}