// ==UserScript== // @name lx-msuic 辅助脚本 // @namespace lx-music-script // @version 0.2.7 // @author lyswhut // @description lx-msuic 辅助脚本,提供在官方音乐平台歌单、歌曲详情页直接调用LX Music的能力。 // @homepage https://github.com/lyswhut/lx-music-script#readme // @supportURL https://github.com/lyswhut/lx-music-script/issues // @match *://*.kuwo.cn/* // @match *://y.qq.com/* // @match *://music.163.com/* // @match *://music.migu.cn/* // @run-at document-start // @noframes // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAABWVBMVEUAAABj1KVyzKduz6ds0KZcvqJgvaJuz6ds0KZevaFdvaFr0KZr0KZfvaFevaFdvaFs0KZevaFs0KZdvaBcvaFr0KZbvaBbvaBr0KZbvZ9q0KVbvZ9q0KVq0aVbvZ9q0KVp0aVp0aVp0aVp0aVp0aVp0aVp0aVp0aVo0aRo0aRo0aRo0qRo0aRo0aRo0aRo0qRn0qNn0qNn0qNn0qNm0qNm0qNm0qNm0qNm0qNm0qJm0qJWupdl06Jl06Jl06Jl06Jl06Jl06FVuZVl06Fk06Fk06Fk06Fk06Fk06FUuZNUuZNk06Bj1KBj1KBj1KBj1KBTuJFTuJFSt49St49i1J9i1J9St41Rtoxi1Z5RtotRtYth1Z5RtYpQtYph1Z1QtYlg1Z1QtIhg1ZxPtIdg1ZxPs4Vg1Ztg1ZxPs4Rf1ZtOsoJOsoNf1ppf1plf1ppNr3xe1phe1plf1pma98AtAAAAb3RSTlMAAgUHCQsODhIWGhocHyEjIycnKy0tNDo/QEBESEpLTlJWWFlfYmRneXp9gIKEhoibn6Cio6SlqbCxt7i/wMHDxMXIys3P09TW19ja29zd3t/h5ebn6uzu7vHy8vT19fb3+Pj5+vv7+/z8/f39/v5h65S/AAABRUlEQVQ4y4XTZ1fCMBgF4Bc3oiC49164cICAIqi4EfeqG0FELbzx/3+wK0mVlN5PzbnPadoMAFMcx1i83fbXg1VmUIt8FXSJQQhpSGqwMlCSarcB+O23AYiLdoBM2gB8EQG5SLgYF4B9qOoKXBogLARqhjIaiFsC8BXUwao1gCV1MFwBuJTnrOgvYnQkI4bKAZmHRo+nWQeZGt75Ahvx5XXEZOtrSUluAFqQTPD6iK7M1FpJywEsYJT1/e9s6ca2dHAGeyesb8qiAMxWM7CDIsDT8MP3Vx4VgDnWB5W3CkCE9vdwLkkfOviUpGu3AWIU5B0XJVMeaw2wwqZI1N3w/s1Lp+jj/xBx3rG+jX/EExdh54Pe5zpMXzltPunuZ63v/LOLmxykwa3s1lfvv32O0oOcdAB4D0+7y+5Uz26eYCE9Un4dfwFD48/Gwgd5VgAAAABJRU5ErkJggg== // @grant none // @downloadURL none // ==/UserScript== /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ 5318: /***/ ((module) => { function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports.default = module.exports; /***/ }), /***/ 5579: /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { if (true) { !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(2601)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else { var mod; } })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_sources) { "use strict"; var _interopRequireDefault = __webpack_require__(5318); _sources = _interopRequireDefault(_sources); switch (window.location.hostname) { case 'www.kuwo.cn': case 'kuwo.cn': _sources.default.kw(); break; case 'y.qq.com': _sources.default.tx(); break; case 'music.163.com': _sources.default.wy(); break; case 'music.migu.cn': _sources.default.mg(); break; default: break; } }); /***/ }), /***/ 2601: /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { if (true) { !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(2955), __webpack_require__(1500), __webpack_require__(220), __webpack_require__(2641)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else { var mod; } })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _kw, _tx, _wy, _mg) { "use strict"; var _interopRequireDefault = __webpack_require__(5318); Object.defineProperty(_exports, "__esModule", { value: true }); _exports.default = void 0; _kw = _interopRequireDefault(_kw); _tx = _interopRequireDefault(_tx); _wy = _interopRequireDefault(_wy); _mg = _interopRequireDefault(_mg); // import kg from './kg' var _default = { kw: _kw.default, // kg, tx: _tx.default, wy: _wy.default, mg: _mg.default }; _exports.default = _default; }); /***/ }), /***/ 2955: /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { if (true) { !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(4916), __webpack_require__(5306), __webpack_require__(9853)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else { var mod; } })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _esRegexpExec, _esStringReplace, _utils) { "use strict"; Object.defineProperty(_exports, "__esModule", { value: true }); _exports.formatSinger = _exports.default = void 0; let data = null; const formatSinger = rawData => rawData.replace(/&/g, '、'); _exports.formatSinger = formatSinger; const filterListDetail = rawList => { // console.log(rawList) // console.log(rawList.length, rawList2.length) return rawList.map((item, inedx) => { let formats = item.formats.split('|'); let types = []; let _types = {}; if (formats.includes('MP3128')) { types.push({ type: '128k', size: null }); _types['128k'] = { size: null }; } // if (formats.includes('MP3192')) { // types.push({ type: '192k', size: null }) // _types['192k'] = { // size: null, // } // } if (formats.includes('MP3H')) { types.push({ type: '320k', size: null }); _types['320k'] = { size: null }; } // if (formats.includes('AL')) { // types.push({ type: 'ape', size: null }) // _types.ape = { // size: null, // } // } if (formats.includes('ALFLAC')) { types.push({ type: 'flac', size: null }); _types.flac = { size: null }; } // types.reverse() return { singer: formatSinger((0, _utils.decodeName)(item.artist)), name: (0, _utils.decodeName)(item.songName), albumName: (0, _utils.decodeName)(item.album), albumId: item.albumId, songmid: item.id, source: 'kw', interval: (0, _utils.formatPlayTime)(parseInt(item.duration)), img: item.pic, lrc: null, otherSource: null, types, _types, typeUrl: {} }; }); }; const injectStyle = () => { const style = document.createElement('style'); style.innerHTML = '.btns {white-space: nowrap; flex-wrap: wrap;} .btns button{margin-bottom: 10px;} .btns .play { width: auto !important;} '; document.head.appendChild(style); }; let dom_main; const injectBtn = async callback => { const dom_btn = document.querySelector('.btns button'); if (!dom_btn) { let mains = document.querySelectorAll('#__layout > .page > .container > *'); if (!mains.length) return; mains = Array.from(mains); let current_dom_main; for (const dom of mains) { if (dom.nodeType == 1) { current_dom_main = dom; break; } } if (!current_dom_main) return; dom_main = current_dom_main; current_dom_main.addEventListener('DOMNodeRemoved', () => { if (dom_main !== current_dom_main) return; dom_main = null; setTimeout(() => { const dom_btn = document.querySelector('.btns button'); if (!dom_btn) return; if (dom_btn.parentNode.querySelector('.lx-btn')) return; callback(dom_btn); }); }); return; } if (dom_btn.parentNode.querySelector('.lx-btn')) return; callback(dom_btn); }; const createBtn = (label, onClick, dataKeys, className = 'play bg_primary') => { className += ' lx-btn'; const dom_a = document.createElement('button'); dom_a.className = className; for (const key of dataKeys) dom_a.dataset[key] = ''; dom_a.innerHTML = ` `data-${k}`).join(' ')}>${label}`; dom_a.addEventListener('click', onClick); return dom_a; }; const injectPlaylistPage = ({ id }) => { injectBtn(dom_btn => { const dataKeys = Object.keys(dom_btn.dataset); dom_btn.insertAdjacentElement('afterend', createBtn('在 LX Music 中打开', () => { (0, _utils.openApp)('songlist', 'open', { source: 'kw', id }); }, dataKeys, 'mod_btn')); dom_btn.insertAdjacentElement('afterend', createBtn('在 LX Music 中播放', () => { (0, _utils.openApp)('songlist', 'play', { source: 'kw', id }); }, dataKeys)); }); }; const injectSongDetailPage = musicInfo => { console.log(musicInfo); injectBtn(dom_btn => { const dataKeys = Object.keys(dom_btn.dataset); dom_btn.insertAdjacentElement('afterend', createBtn('在 LX Music 中播放', () => { (0, _utils.openApp)('music', 'play', musicInfo); }, dataKeys)); }); }; const hadnleInject = () => { if (!data) return; if (window.location.pathname.includes('/playlist_detail/')) { injectPlaylistPage(data); } else if (window.location.pathname.includes('/play_detail/')) { injectSongDetailPage(data); } }; var _default = () => { window.addEventListener('DOMContentLoaded', () => { injectStyle(); }); window.addEventListener('load', () => { if (window.location.pathname.includes('/playlist_detail/')) { // eslint-disable-next-line no-undef const detail = __NUXT__.data[0].playListInfo; data = { play_count: detail.listencnt, id: detail.id, author: detail.userName, name: detail.name, img: detail.img, desc: detail.info, source: 'kw' }; console.log(data); hadnleInject(); } }); // window.history.pushState = ((f) => // function pushState() { // const ret = f.apply(this, arguments) // window.dispatchEvent(new window.Event('pushstate')) // window.dispatchEvent(new window.Event('locationchange')) // return ret // })(window.history.pushState) // window.history.replaceState = ((f) => // function replaceState() { // const ret = f.apply(this, arguments) // window.dispatchEvent(new window.Event('replacestate')) // window.dispatchEvent(new window.Event('locationchange')) // return ret // })(window.history.replaceState) // window.addEventListener('popstate', () => { // window.dispatchEvent(new window.Event('locationchange')) // }) // window.addEventListener('locationchange', function() { // }) (0, _utils.requestHook)((url, requestBody, response) => { // if (!requestBody) return // console.log(url) if (url.includes('playlist/playListInfo?')) { if (response.code != 200) { data = null; return; } let detail = response.data; data = { play_count: detail.listencnt, id: detail.id, author: detail.userName, name: detail.name, img: detail.img, desc: detail.info, source: 'kw' }; console.log(data); setTimeout(() => { hadnleInject(); }); } else if (url.includes('singles/songinfoandlrc')) { if (response.status != 200) { data = null; return; } let detail = response.data.songinfo; data = filterListDetail([detail])[0]; console.log(data); setTimeout(() => { hadnleInject(); }); } }); }; _exports.default = _default; }); /***/ }), /***/ 2641: /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { if (true) { !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(4916), __webpack_require__(4603), __webpack_require__(9853)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else { var mod; } })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _esRegexpExec, _esRegexpConstructor, _utils) { "use strict"; Object.defineProperty(_exports, "__esModule", { value: true }); _exports.default = void 0; let data = null; const getSinger = singers => { let arr = []; singers.forEach(singer => { arr.push(singer.name); }); return arr.join('、'); }; const filterListDetail = rawList => { // console.log(rawList) let ids = new Set(); const list = []; rawList.forEach(item => { if (ids.has(item.copyrightId)) return; ids.add(item.copyrightId); const types = []; const _types = {}; item.newRateFormats && item.newRateFormats.forEach(type => { let size; switch (type.formatType) { case 'PQ': size = (0, _utils.sizeFormate)(type.size); types.push({ type: '128k', size }); _types['128k'] = { size }; break; case 'HQ': size = (0, _utils.sizeFormate)(type.size); types.push({ type: '320k', size }); _types['320k'] = { size }; break; case 'SQ': size = (0, _utils.sizeFormate)(type.size); types.push({ type: 'flac', size }); _types.flac = { size }; break; case 'ZQ': size = (0, _utils.sizeFormate)(type.size); types.push({ type: 'flac32bit', size }); _types.flac32bit = { size }; break; } }); const intervalTest = /(\d\d:\d\d)$/.test(item.length); list.push({ singer: getSinger(item.artists), name: item.songName, albumName: item.album, albumId: item.albumId, songmid: item.copyrightId, songId: item.songId, copyrightId: item.copyrightId, source: 'mg', interval: intervalTest ? RegExp.$1 : null, img: item.albumImgs && item.albumImgs.length ? item.albumImgs[0].img : null, lrc: null, lrcUrl: item.lrcUrl, otherSource: null, types, _types, typeUrl: {} }); }); return list; }; const injectStyle = () => { const style = document.createElement('style'); style.innerHTML = `.content .actions> * {margin-bottom: .8em;} .info_operate {white-space: nowrap;} .info_operate .operate_btn.primary {border: 1px solid #e91e63 !important; background-color: #e91e63 !important; cursor: pointer;} .info_operate .operate_btn.primary:hover {background-color: #d81558 !important;} .info_operate .operate_btn.primary a {color: #fff !important;}`; document.head.appendChild(style); }; const createPlaylistBtn = (label, onClick, className = 'play-all') => { const dom_a = document.createElement('a'); dom_a.className = 'action ' + className; dom_a.innerHTML = label; dom_a.addEventListener('click', onClick); return dom_a; }; const injectPlaylistPage = ({ id }) => { const dom_btn = document.querySelector('.actions .action'); if (!dom_btn) return; dom_btn.insertAdjacentElement('afterend', createPlaylistBtn('在 LX Music 中打开', () => { (0, _utils.openApp)('songlist', 'open', { source: 'mg', id }); }, '')); dom_btn.insertAdjacentElement('afterend', createPlaylistBtn('在 LX Music 中播放', () => { (0, _utils.openApp)('songlist', 'play', { source: 'mg', id }); })); }; const createSongDetailBtn = (label, onClick, className = 'primary') => { const dom_a = document.createElement('div'); dom_a.className = 'operate_btn ' + className; dom_a.innerHTML = `${label}`; dom_a.addEventListener('click', onClick); return dom_a; }; const injectSongDetailPage = musicInfo => { console.log(musicInfo); const dom_btn = document.querySelector('.info_operate .operate_btn'); if (!dom_btn) return; dom_btn.insertAdjacentElement('afterend', createSongDetailBtn('在 LX Music 中播放', () => { (0, _utils.openApp)('music', 'play', musicInfo); })); }; const hadnleInject = () => { if (!data) return; if (window.location.pathname.includes('/music/playlist/')) { injectPlaylistPage(data); } else if (window.location.pathname.includes('/music/song/')) { injectSongDetailPage(data); } }; var _default = () => { window.addEventListener('DOMContentLoaded', () => { injectStyle(); if (window.location.pathname.includes('/music/playlist/')) { const dom_songcid = document.getElementById('J_ResId'); if (!dom_songcid || !dom_songcid.value) return; // eslint-disable-next-line no-undef // const detail = __INITIAL_DATA__.detail data = { id: dom_songcid.value, source: 'mg' }; hadnleInject(); } else if (window.location.pathname.includes('/music/song/')) { // eslint-disable-next-line no-undef const dom_songcid = document.getElementById('songcid'); if (!dom_songcid || !dom_songcid.value) return; (0, _utils.request)('get', `https://c.musicapp.migu.cn/MIGUM2.0/v1.0/content/resourceinfo.do?copyrightId=${dom_songcid.value}&resourceType=2`).then(response => { if (response.code !== '000000') return; console.log(response); const detail = response.resource[0]; data = filterListDetail([detail])[0]; console.log(data); hadnleInject(); }); } }); }; _exports.default = _default; }); /***/ }), /***/ 1500: /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { if (true) { !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(9853)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else { var mod; } })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _utils) { "use strict"; Object.defineProperty(_exports, "__esModule", { value: true }); _exports.default = void 0; let data = null; const getSinger = singers => { let arr = []; singers.forEach(singer => { arr.push(singer.name); }); return arr.join('、'); }; const filterListDetail = rawList => { // console.log(rawList) return rawList.map(item => { let types = []; let _types = {}; if (item.file.size_128mp3 !== 0) { let size = (0, _utils.sizeFormate)(item.file.size_128mp3); types.push({ type: '128k', size }); _types['128k'] = { size }; } if (item.file.size_320mp3 !== 0) { let size = (0, _utils.sizeFormate)(item.file.size_320mp3); types.push({ type: '320k', size }); _types['320k'] = { size }; } if (item.file.size_ape !== 0) { let size = (0, _utils.sizeFormate)(item.file.size_ape); types.push({ type: 'ape', size }); _types.ape = { size }; } if (item.file.size_flac !== 0) { let size = (0, _utils.sizeFormate)(item.file.size_flac); types.push({ type: 'flac', size }); _types.flac = { size }; } // types.reverse() return { singer: getSinger(item.singer), name: item.title, albumName: item.album.title, albumId: item.album.id, source: 'tx', interval: (0, _utils.formatPlayTime)(item.interval), songId: item.id, albumMid: item.album.mid, strMediaMid: item.file.media_mid, songmid: item.mid, img: item.album.name === '' || item.album.name === '空' ? `https://y.gtimg.cn/music/photo_new/T001R500x500M000${item.singer[0].mid}.jpg` : `https://y.gtimg.cn/music/photo_new/T002R500x500M000${item.album.mid}.jpg`, lrc: null, otherSource: null, types, _types, typeUrl: {} }; }); }; const injectStyle = () => { const style = document.createElement('style'); style.innerHTML = ` .data__cont{position: relative;} .data__info { overflow: hidden; } .singer_exclusive .mod_data_statistic { height: auto; } /** 修复歌手页排版问题 **/ .data__actions {position: relative; bottom: initial !important; white-space: nowrap; display: flex; flex-wrap: wrap; margin-top: 6px;} .mod_btn, .mod_btn_green{ margin-bottom: 6px; } `; document.head.appendChild(style); }; const injectBtn = async callback => { const dom_btn = document.querySelector('.data__actions a'); if (!dom_btn) { let dom_loading = document.querySelector('.mod_loading'); console.log(dom_loading); if (!dom_loading) return; let observer_app; let observer_wrap; const handleChange = list => { var _observer_app, _observer_wrap; // console.log(list) (_observer_app = observer_app) === null || _observer_app === void 0 ? void 0 : _observer_app.disconnect(); (_observer_wrap = observer_wrap) === null || _observer_wrap === void 0 ? void 0 : _observer_wrap.disconnect(); // if (dom_loading !== current_dom_loading) return // dom_loading = null setTimeout(() => { const dom_btn = document.querySelector('.data__actions a'); if (!dom_btn) return; if (dom_btn.parentNode.querySelector('.lx-btn')) return; callback(dom_btn); }); }; let dom_app = document.querySelector('#app'); // console.log(dom_app) if (dom_app) { observer_app = new window.MutationObserver(handleChange); observer_app.observe(dom_app, { attributes: false, childList: true, subtree: false }); } let dom_wrap = document.querySelector('#app>.wrap'); // console.log(dom_wrap) if (dom_wrap) { observer_wrap = new window.MutationObserver(handleChange); observer_wrap.observe(dom_wrap, { attributes: false, childList: true, subtree: false }); } // current_dom_loading.addEventListener('DOMNodeRemoved', () => { // console.log(dom_loading !== current_dom_loading) // if (dom_loading !== current_dom_loading) return // dom_loading = null // setTimeout(() => { // const dom_btn = document.querySelector('.data__actions a') // if (!dom_btn) return // callback(dom_btn) // }) // }) return; } if (dom_btn.parentNode.querySelector('.lx-btn')) return; callback(dom_btn); }; const createBtn = (label, onClick, className = 'mod_btn_green') => { className += ' lx-btn'; const dom_a = document.createElement('a'); dom_a.className = className; dom_a.innerHTML = `${label}`; dom_a.addEventListener('click', onClick); return dom_a; }; const injectPlaylistPage = ({ id }) => { injectBtn(dom_btn => { dom_btn.insertAdjacentElement('afterend', createBtn('在 LX Music 中打开', () => { (0, _utils.openApp)('songlist', 'open', { source: 'tx', id }); }, 'mod_btn')); dom_btn.insertAdjacentElement('afterend', createBtn('在 LX Music 中播放', () => { (0, _utils.openApp)('songlist', 'play', { source: 'tx', id }); })); }); }; const injectSongDetailPage = musicInfo => { console.log(musicInfo); injectBtn(dom_btn => { dom_btn.insertAdjacentElement('afterend', createBtn('在 LX Music 中播放', () => { (0, _utils.openApp)('music', 'play', musicInfo); })); }); }; const hadnleInject = () => { if (!data) return; if (window.location.pathname.includes('/playlist/')) { injectPlaylistPage(data); } else if (window.location.pathname.includes('/songDetail/')) { injectSongDetailPage(data); } }; var _default = () => { window.addEventListener('load', () => { injectStyle(); if (window.location.pathname.includes('/playlist/')) { // eslint-disable-next-line no-undef const detail = __INITIAL_DATA__.detail; data = { play_count: detail.listennum, id: detail.id, author: detail.host_nick, name: detail.title, img: detail.picurl, desc: detail.desc, source: 'tx' }; } else if (window.location.pathname.includes('/songDetail/')) { // eslint-disable-next-line no-undef data = filterListDetail(__INITIAL_DATA__.songList)[0]; } hadnleInject(); }); // window.history.pushState = ((f) => // function pushState() { // const ret = f.apply(this, arguments) // window.dispatchEvent(new window.Event('pushstate')) // window.dispatchEvent(new window.Event('locationchange')) // return ret // })(window.history.pushState) // window.history.replaceState = ((f) => // function replaceState() { // const ret = f.apply(this, arguments) // window.dispatchEvent(new window.Event('replacestate')) // window.dispatchEvent(new window.Event('locationchange')) // return ret // })(window.history.replaceState) // window.addEventListener('popstate', () => { // window.dispatchEvent(new window.Event('locationchange')) // }) // window.addEventListener('locationchange', function() { // }) (0, _utils.requestHook)((url, requestBody, response) => { if (!requestBody) return; if (requestBody.includes('"module":"music.srfDissInfo.aiDissInfo"') && requestBody.includes('"method":"uniform_get_Dissinfo"')) { if (response.code != 0) { data = null; return; } let detail; for (const value of Object.values(response)) { var _value$data; if (value !== null && value !== void 0 && (_value$data = value.data) !== null && _value$data !== void 0 && _value$data.dirinfo) { detail = value.data.dirinfo; break; } } data = { play_count: detail.listennum, id: detail.id, author: detail.host_nick, name: detail.title, img: detail.picurl, desc: detail.desc, source: 'tx' }; setTimeout(() => { hadnleInject(); }); } else if (requestBody.includes('"module":"music.pf_song_detail_svr"') && requestBody.includes('"method":"get_song_detail_yqq"')) { if (response.code != 0) { data = null; return; } let detail; for (const value of Object.values(response)) { var _value$data2; if (value !== null && value !== void 0 && (_value$data2 = value.data) !== null && _value$data2 !== void 0 && _value$data2.track_info) { detail = value.data.track_info; break; } } data = filterListDetail([detail])[0]; setTimeout(() => { hadnleInject(); }); } }); }; _exports.default = _default; }); /***/ }), /***/ 220: /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { if (true) { !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(4916), __webpack_require__(4603), __webpack_require__(9853), __webpack_require__(442)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else { var mod; } })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _esRegexpExec, _esRegexpConstructor, _utils, _forge) { "use strict"; var _interopRequireDefault = __webpack_require__(5318); Object.defineProperty(_exports, "__esModule", { value: true }); _exports.default = void 0; _forge = _interopRequireDefault(_forge); let data = null; const idRxp = /id=(\d+)/; let dom_iframe; const getSinger = singers => { let arr = []; singers.forEach(singer => { arr.push(singer.name); }); return arr.join('、'); }; const filterList = ({ songs, privileges }) => { // console.log(songs, privileges) const list = []; songs.forEach((item, index) => { const types = []; const _types = {}; let size; let privilege = privileges[index]; if (privilege.id !== item.id) privilege = privileges.find(p => p.id === item.id); if (!privilege) return; switch (privilege.maxbr) { case 999000: size = null; types.push({ type: 'flac', size }); _types.flac = { size }; case 320000: if (item.h) { size = (0, _utils.sizeFormate)(item.h.size); types.push({ type: '320k', size }); _types['320k'] = { size }; } case 192000: case 128000: if (item.l) { size = (0, _utils.sizeFormate)(item.l.size); types.push({ type: '128k', size }); _types['128k'] = { size }; } } types.reverse(); list.push({ singer: getSinger(item.ar), name: item.name, albumName: item.al.name, albumId: item.al.id, source: 'wy', interval: (0, _utils.formatPlayTime)(item.dt / 1000), songmid: item.id, img: item.al.picUrl, lrc: null, otherSource: null, types, _types, typeUrl: {} }); }); return list; }; const injectStyle = () => { const style = dom_iframe.contentWindow.document.createElement('style'); style.innerHTML = '.btns > a {margin-bottom: 6px;} .margin-right { margin-right: 5px; } '; dom_iframe.contentWindow.document.head.appendChild(style); }; const injectBtn = () => { const dom_btn = dom_iframe.contentWindow.document.querySelector('.btns .u-btni-add'); return dom_btn; }; const createBtn = (label, onClick, className = 'u-btn2 u-btn2-2 u-btni-addply f-fl margin-right') => { const dom_a = dom_iframe.contentWindow.document.createElement('a'); dom_a.className = className; dom_a.innerHTML = `${className.includes('u-btn2-2') ? '' : ''}${label}`; dom_a.addEventListener('click', onClick); return dom_a; }; const injectPlaylistPage = ({ id }) => { const dom_btn = injectBtn(); if (!dom_btn) return; dom_btn.insertAdjacentElement('afterend', createBtn('在 LX Music 中打开', () => { (0, _utils.openApp)('songlist', 'open', { source: 'wy', id }); }, 'u-btni u-btni-share')); dom_btn.insertAdjacentElement('afterend', createBtn('在 LX Music 中播放', () => { (0, _utils.openApp)('songlist', 'play', { source: 'wy', id }); })); }; const injectSongDetailPage = musicInfo => { console.log(musicInfo); const dom_btn = injectBtn(); if (!dom_btn) return; dom_btn.insertAdjacentElement('afterend', createBtn('在 LX Music 中播放', () => { (0, _utils.openApp)('music', 'play', musicInfo); })); }; const hadnleInject = () => { if (!data) return; if (dom_iframe.contentWindow.location.href.includes('/playlist?')) { injectPlaylistPage(data); } else if (dom_iframe.contentWindow.location.href.includes('/song?')) { injectSongDetailPage(data); } }; // https://github.com/listen1/listen1_chrome_extension/blob/master/js/provider/netease.js const create_secret_key = size => { const result = []; const choice = '012345679abcdef'.split(''); for (let i = 0; i < size; i += 1) { const index = Math.floor(Math.random() * choice.length); result.push(choice[index]); } return result.join(''); }; const aes_encrypt = (text, sec_key, algo) => { const cipher = _forge.default.cipher.createCipher(algo, sec_key); cipher.start({ iv: '0102030405060708' }); cipher.update(_forge.default.util.createBuffer(text)); cipher.finish(); return cipher.output; }; const rsa_encrypt = (text, pubKey, modulus) => { text = text.split('').reverse().join(''); // eslint-disable-line no-param-reassign const n = new _forge.default.jsbn.BigInteger(modulus, 16); const e = new _forge.default.jsbn.BigInteger(pubKey, 16); const b = new _forge.default.jsbn.BigInteger(_forge.default.util.bytesToHex(text), 16); const enc = b.modPow(e, n).toString(16).padStart(256, '0'); return enc; }; const weapi = text => { const modulus = '00e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b72' + '5152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbd' + 'a92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe48' + '75d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7'; const nonce = '0CoJUm6Qyw8W8jud'; const pubKey = '010001'; text = JSON.stringify(text); // eslint-disable-line no-param-reassign const sec_key = create_secret_key(16); const enc_text = btoa(aes_encrypt(btoa(aes_encrypt(text, nonce, 'AES-CBC').data), sec_key, 'AES-CBC').data); const enc_sec_key = rsa_encrypt(sec_key, pubKey, modulus); const data = { params: enc_text, encSecKey: enc_sec_key }; return data; }; const wyWeapiRequest = (method, url, data) => { const json = weapi(data); return (0, _utils.request)(method, url, `params=${encodeURIComponent(json.params)}&encSecKey=${encodeURIComponent(json.encSecKey)}`, { 'Content-Type': 'application/x-www-form-urlencoded' }); }; var _default = () => { window.addEventListener('DOMContentLoaded', () => { dom_iframe = document.getElementById('g_iframe'); if (!dom_iframe) return; dom_iframe.addEventListener('load', () => { injectStyle(); if (dom_iframe.contentWindow.location.href.includes('/playlist?')) { if (!idRxp.test(dom_iframe.contentWindow.location.href)) return; const id = RegExp.$1; data = { id, source: 'wy' }; hadnleInject(); } else if (dom_iframe.contentWindow.location.href.includes('/song?')) { if (!idRxp.test(dom_iframe.contentWindow.location.href)) return; const id = RegExp.$1; wyWeapiRequest('POST', 'https://music.163.com/weapi/v3/song/detail', { c: '[{"id":' + id + '}]' }).then(res => { if (res.code != 200) return; data = filterList(res)[0]; hadnleInject(); }); } }); }); }; _exports.default = _default; }); /***/ }), /***/ 9853: /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { if (true) { !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(4916), __webpack_require__(5306)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else { var mod; } })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _esRegexpExec, _esStringReplace) { "use strict"; Object.defineProperty(_exports, "__esModule", { value: true }); _exports.wait = _exports.sizeFormate = _exports.requestHook = _exports.request = _exports.openApp = _exports.formatPlayTime = _exports.encodeData = _exports.decodeName = void 0; const requestHook = callback => { let oldXHROpen = window.XMLHttpRequest.prototype.open; window.XMLHttpRequest.prototype.open = function (method, url) { // do something with the method, url and etc. this._url = url; // this.addEventListener('load', function () { // // do something with the response text // console.log('load: ' + url) // console.log(JSON.parse(this.responseText)) // try { // callback(url, JSON.parse(this.responseText)) // } catch (_) {} // }) return oldXHROpen.apply(this, arguments); }; let oldXHRSend = window.XMLHttpRequest.prototype.send; window.XMLHttpRequest.prototype.send = function (data) { this.addEventListener('load', function () { // do something with the response text // console.log('load: ' + data) // console.log(JSON.parse(this.responseText)) try { callback(this._url, data, JSON.parse(this.responseText)); } catch (_) {} }); oldXHRSend.call(this, data); }; }; _exports.requestHook = requestHook; const encodeData = data => encodeURIComponent(JSON.stringify(data)); _exports.encodeData = encodeData; const sizeFormate = size => { // https://gist.github.com/thomseddon/3511330 if (!size) return '0 B'; let units = ['B', 'KB', 'MB', 'GB', 'TB']; let number = Math.floor(Math.log(size) / Math.log(1024)); return `${(size / Math.pow(1024, Math.floor(number))).toFixed(2)} ${units[number]}`; }; _exports.sizeFormate = sizeFormate; const formatPlayTime = time => { let m = parseInt(time / 60); let s = parseInt(time % 60); return m === 0 && s === 0 ? '--/--' : (m < 10 ? '0' + m : m) + ':' + (s < 10 ? '0' + s : s); }; _exports.formatPlayTime = formatPlayTime; const encodeNames = { '&': '&', '<': '<', '>': '>', '"': '"', ''': "'", ''': "'" }; const decodeName = (str = '') => (str === null || str === void 0 ? void 0 : str.replace(/(?:&|<|>|"|'|')/gm, s => encodeNames[s])) || ''; _exports.decodeName = decodeName; const openApp = (type, action, data) => { const dom_a = document.createElement('a'); dom_a.href = `lxmusic://${type}/${action}?data=${encodeData(data)}`; dom_a.click(); }; _exports.openApp = openApp; const request = (method, url, data, headers) => { const xhr = new window.XMLHttpRequest(); xhr.open(method, url); if (headers) { for (const [key, value] of Object.entries(headers)) { xhr.setRequestHeader(key, value); } } xhr.addEventListener('load', function () { let response; try { response = JSON.parse(this.responseText); } catch (err) { _resolve(this.responseText); } _resolve(response); }); xhr.addEventListener('error', function (err) { _reject(err); }); let _resolve; let _reject; if (method && method.toUpperCase() === 'POST') { xhr.send(data); } else { xhr.send(); } return new Promise((resolve, reject) => { _resolve = resolve; _reject = reject; }); }; _exports.request = request; const wait = time => new Promise(resolve => setTimeout(resolve, time)); _exports.wait = wait; }); /***/ }), /***/ 442: /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { if (true) { !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(3462), __webpack_require__(4633), __webpack_require__(4916), __webpack_require__(5306), __webpack_require__(5827), __webpack_require__(4603), __webpack_require__(2087)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else { var mod; } })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_esTypedArraySet, _webImmediate, _esRegexpExec, _esStringReplace, _esArrayReduce, _esRegexpConstructor, _esRegexpFlags) { "use strict"; !function (e, t) { true ? module.exports = t() : 0; }(window, function () { return function (e) { var t = {}; function r(a) { if (t[a]) return t[a].exports; var n = t[a] = { i: a, l: !1, exports: {} }; return e[a].call(n.exports, n, n.exports, r), n.l = !0, n.exports; } return r.m = e, r.c = t, r.d = function (e, t, a) { r.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: a }); }, r.r = function (e) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }); }, r.t = function (e, t) { if (1 & t && (e = r(e)), 8 & t) return e; if (4 & t && "object" == typeof e && e && e.__esModule) return e; var a = Object.create(null); if (r.r(a), Object.defineProperty(a, "default", { enumerable: !0, value: e }), 2 & t && "string" != typeof e) for (var n in e) r.d(a, n, function (t) { return e[t]; }.bind(null, n)); return a; }, r.n = function (e) { var t = e && e.__esModule ? function () { return e.default; } : function () { return e; }; return r.d(t, "a", t), t; }, r.o = function (e, t) { return Object.prototype.hasOwnProperty.call(e, t); }, r.p = "", r(r.s = 32); }([function (e, t) { e.exports = { options: { usePureJavaScript: !1 } }; }, function (e, t, r) { (function (t) { var a = r(0), n = r(35), i = e.exports = a.util = a.util || {}; function s(e) { if (8 !== e && 16 !== e && 24 !== e && 32 !== e) throw new Error("Only 8, 16, 24, or 32 bits supported: " + e); } function o(e) { if (this.data = "", this.read = 0, "string" == typeof e) this.data = e;else if (i.isArrayBuffer(e) || i.isArrayBufferView(e)) { if ("undefined" != typeof Buffer && e instanceof Buffer) this.data = e.toString("binary");else { var t = new Uint8Array(e); try { this.data = String.fromCharCode.apply(null, t); } catch (e) { for (var r = 0; r < t.length; ++r) this.putByte(t[r]); } } } else (e instanceof o || "object" == typeof e && "string" == typeof e.data && "number" == typeof e.read) && (this.data = e.data, this.read = e.read); this._constructedStringLength = 0; } !function () { if ("undefined" != typeof process && process.nextTick && !process.browser) return i.nextTick = process.nextTick, void ("function" == typeof setImmediate ? i.setImmediate = setImmediate : i.setImmediate = i.nextTick); if ("function" == typeof setImmediate) return i.setImmediate = function () { return setImmediate.apply(void 0, arguments); }, void (i.nextTick = function (e) { return setImmediate(e); }); if (i.setImmediate = function (e) { setTimeout(e, 0); }, "undefined" != typeof window && "function" == typeof window.postMessage) { var e = "forge.setImmediate", t = []; i.setImmediate = function (r) { t.push(r), 1 === t.length && window.postMessage(e, "*"); }, window.addEventListener("message", function (r) { if (r.source === window && r.data === e) { r.stopPropagation(); var a = t.slice(); t.length = 0, a.forEach(function (e) { e(); }); } }, !0); } if ("undefined" != typeof MutationObserver) { var r = Date.now(), a = !0, n = document.createElement("div"); t = []; new MutationObserver(function () { var e = t.slice(); t.length = 0, e.forEach(function (e) { e(); }); }).observe(n, { attributes: !0 }); var s = i.setImmediate; i.setImmediate = function (e) { Date.now() - r > 15 ? (r = Date.now(), s(e)) : (t.push(e), 1 === t.length && n.setAttribute("a", a = !a)); }; } i.nextTick = i.setImmediate; }(), i.isNodejs = "undefined" != typeof process && process.versions && process.versions.node, i.globalScope = i.isNodejs ? t : "undefined" == typeof self ? window : self, i.isArray = Array.isArray || function (e) { return "[object Array]" === Object.prototype.toString.call(e); }, i.isArrayBuffer = function (e) { return "undefined" != typeof ArrayBuffer && e instanceof ArrayBuffer; }, i.isArrayBufferView = function (e) { return e && i.isArrayBuffer(e.buffer) && void 0 !== e.byteLength; }, i.ByteBuffer = o, i.ByteStringBuffer = o; i.ByteStringBuffer.prototype._optimizeConstructedString = function (e) { this._constructedStringLength += e, this._constructedStringLength > 4096 && (this.data.substr(0, 1), this._constructedStringLength = 0); }, i.ByteStringBuffer.prototype.length = function () { return this.data.length - this.read; }, i.ByteStringBuffer.prototype.isEmpty = function () { return this.length() <= 0; }, i.ByteStringBuffer.prototype.putByte = function (e) { return this.putBytes(String.fromCharCode(e)); }, i.ByteStringBuffer.prototype.fillWithByte = function (e, t) { e = String.fromCharCode(e); for (var r = this.data; t > 0;) 1 & t && (r += e), (t >>>= 1) > 0 && (e += e); return this.data = r, this._optimizeConstructedString(t), this; }, i.ByteStringBuffer.prototype.putBytes = function (e) { return this.data += e, this._optimizeConstructedString(e.length), this; }, i.ByteStringBuffer.prototype.putString = function (e) { return this.putBytes(i.encodeUtf8(e)); }, i.ByteStringBuffer.prototype.putInt16 = function (e) { return this.putBytes(String.fromCharCode(e >> 8 & 255) + String.fromCharCode(255 & e)); }, i.ByteStringBuffer.prototype.putInt24 = function (e) { return this.putBytes(String.fromCharCode(e >> 16 & 255) + String.fromCharCode(e >> 8 & 255) + String.fromCharCode(255 & e)); }, i.ByteStringBuffer.prototype.putInt32 = function (e) { return this.putBytes(String.fromCharCode(e >> 24 & 255) + String.fromCharCode(e >> 16 & 255) + String.fromCharCode(e >> 8 & 255) + String.fromCharCode(255 & e)); }, i.ByteStringBuffer.prototype.putInt16Le = function (e) { return this.putBytes(String.fromCharCode(255 & e) + String.fromCharCode(e >> 8 & 255)); }, i.ByteStringBuffer.prototype.putInt24Le = function (e) { return this.putBytes(String.fromCharCode(255 & e) + String.fromCharCode(e >> 8 & 255) + String.fromCharCode(e >> 16 & 255)); }, i.ByteStringBuffer.prototype.putInt32Le = function (e) { return this.putBytes(String.fromCharCode(255 & e) + String.fromCharCode(e >> 8 & 255) + String.fromCharCode(e >> 16 & 255) + String.fromCharCode(e >> 24 & 255)); }, i.ByteStringBuffer.prototype.putInt = function (e, t) { s(t); var r = ""; do { t -= 8, r += String.fromCharCode(e >> t & 255); } while (t > 0); return this.putBytes(r); }, i.ByteStringBuffer.prototype.putSignedInt = function (e, t) { return e < 0 && (e += 2 << t - 1), this.putInt(e, t); }, i.ByteStringBuffer.prototype.putBuffer = function (e) { return this.putBytes(e.getBytes()); }, i.ByteStringBuffer.prototype.getByte = function () { return this.data.charCodeAt(this.read++); }, i.ByteStringBuffer.prototype.getInt16 = function () { var e = this.data.charCodeAt(this.read) << 8 ^ this.data.charCodeAt(this.read + 1); return this.read += 2, e; }, i.ByteStringBuffer.prototype.getInt24 = function () { var e = this.data.charCodeAt(this.read) << 16 ^ this.data.charCodeAt(this.read + 1) << 8 ^ this.data.charCodeAt(this.read + 2); return this.read += 3, e; }, i.ByteStringBuffer.prototype.getInt32 = function () { var e = this.data.charCodeAt(this.read) << 24 ^ this.data.charCodeAt(this.read + 1) << 16 ^ this.data.charCodeAt(this.read + 2) << 8 ^ this.data.charCodeAt(this.read + 3); return this.read += 4, e; }, i.ByteStringBuffer.prototype.getInt16Le = function () { var e = this.data.charCodeAt(this.read) ^ this.data.charCodeAt(this.read + 1) << 8; return this.read += 2, e; }, i.ByteStringBuffer.prototype.getInt24Le = function () { var e = this.data.charCodeAt(this.read) ^ this.data.charCodeAt(this.read + 1) << 8 ^ this.data.charCodeAt(this.read + 2) << 16; return this.read += 3, e; }, i.ByteStringBuffer.prototype.getInt32Le = function () { var e = this.data.charCodeAt(this.read) ^ this.data.charCodeAt(this.read + 1) << 8 ^ this.data.charCodeAt(this.read + 2) << 16 ^ this.data.charCodeAt(this.read + 3) << 24; return this.read += 4, e; }, i.ByteStringBuffer.prototype.getInt = function (e) { s(e); var t = 0; do { t = (t << 8) + this.data.charCodeAt(this.read++), e -= 8; } while (e > 0); return t; }, i.ByteStringBuffer.prototype.getSignedInt = function (e) { var t = this.getInt(e), r = 2 << e - 2; return t >= r && (t -= r << 1), t; }, i.ByteStringBuffer.prototype.getBytes = function (e) { var t; return e ? (e = Math.min(this.length(), e), t = this.data.slice(this.read, this.read + e), this.read += e) : 0 === e ? t = "" : (t = 0 === this.read ? this.data : this.data.slice(this.read), this.clear()), t; }, i.ByteStringBuffer.prototype.bytes = function (e) { return void 0 === e ? this.data.slice(this.read) : this.data.slice(this.read, this.read + e); }, i.ByteStringBuffer.prototype.at = function (e) { return this.data.charCodeAt(this.read + e); }, i.ByteStringBuffer.prototype.setAt = function (e, t) { return this.data = this.data.substr(0, this.read + e) + String.fromCharCode(t) + this.data.substr(this.read + e + 1), this; }, i.ByteStringBuffer.prototype.last = function () { return this.data.charCodeAt(this.data.length - 1); }, i.ByteStringBuffer.prototype.copy = function () { var e = i.createBuffer(this.data); return e.read = this.read, e; }, i.ByteStringBuffer.prototype.compact = function () { return this.read > 0 && (this.data = this.data.slice(this.read), this.read = 0), this; }, i.ByteStringBuffer.prototype.clear = function () { return this.data = "", this.read = 0, this; }, i.ByteStringBuffer.prototype.truncate = function (e) { var t = Math.max(0, this.length() - e); return this.data = this.data.substr(this.read, t), this.read = 0, this; }, i.ByteStringBuffer.prototype.toHex = function () { for (var e = "", t = this.read; t < this.data.length; ++t) { var r = this.data.charCodeAt(t); r < 16 && (e += "0"), e += r.toString(16); } return e; }, i.ByteStringBuffer.prototype.toString = function () { return i.decodeUtf8(this.bytes()); }, i.DataBuffer = function (e, t) { t = t || {}, this.read = t.readOffset || 0, this.growSize = t.growSize || 1024; var r = i.isArrayBuffer(e), a = i.isArrayBufferView(e); if (r || a) return this.data = r ? new DataView(e) : new DataView(e.buffer, e.byteOffset, e.byteLength), void (this.write = "writeOffset" in t ? t.writeOffset : this.data.byteLength); this.data = new DataView(new ArrayBuffer(0)), this.write = 0, null != e && this.putBytes(e), "writeOffset" in t && (this.write = t.writeOffset); }, i.DataBuffer.prototype.length = function () { return this.write - this.read; }, i.DataBuffer.prototype.isEmpty = function () { return this.length() <= 0; }, i.DataBuffer.prototype.accommodate = function (e, t) { if (this.length() >= e) return this; t = Math.max(t || this.growSize, e); var r = new Uint8Array(this.data.buffer, this.data.byteOffset, this.data.byteLength), a = new Uint8Array(this.length() + t); return a.set(r), this.data = new DataView(a.buffer), this; }, i.DataBuffer.prototype.putByte = function (e) { return this.accommodate(1), this.data.setUint8(this.write++, e), this; }, i.DataBuffer.prototype.fillWithByte = function (e, t) { this.accommodate(t); for (var r = 0; r < t; ++r) this.data.setUint8(e); return this; }, i.DataBuffer.prototype.putBytes = function (e, t) { if (i.isArrayBufferView(e)) { var r = (a = new Uint8Array(e.buffer, e.byteOffset, e.byteLength)).byteLength - a.byteOffset; return this.accommodate(r), new Uint8Array(this.data.buffer, this.write).set(a), this.write += r, this; } if (i.isArrayBuffer(e)) { var a = new Uint8Array(e); return this.accommodate(a.byteLength), new Uint8Array(this.data.buffer).set(a, this.write), this.write += a.byteLength, this; } if (e instanceof i.DataBuffer || "object" == typeof e && "number" == typeof e.read && "number" == typeof e.write && i.isArrayBufferView(e.data)) { a = new Uint8Array(e.data.byteLength, e.read, e.length()); return this.accommodate(a.byteLength), new Uint8Array(e.data.byteLength, this.write).set(a), this.write += a.byteLength, this; } if (e instanceof i.ByteStringBuffer && (e = e.data, t = "binary"), t = t || "binary", "string" == typeof e) { var n; if ("hex" === t) return this.accommodate(Math.ceil(e.length / 2)), n = new Uint8Array(this.data.buffer, this.write), this.write += i.binary.hex.decode(e, n, this.write), this; if ("base64" === t) return this.accommodate(3 * Math.ceil(e.length / 4)), n = new Uint8Array(this.data.buffer, this.write), this.write += i.binary.base64.decode(e, n, this.write), this; if ("utf8" === t && (e = i.encodeUtf8(e), t = "binary"), "binary" === t || "raw" === t) return this.accommodate(e.length), n = new Uint8Array(this.data.buffer, this.write), this.write += i.binary.raw.decode(n), this; if ("utf16" === t) return this.accommodate(2 * e.length), n = new Uint16Array(this.data.buffer, this.write), this.write += i.text.utf16.encode(n), this; throw new Error("Invalid encoding: " + t); } throw Error("Invalid parameter: " + e); }, i.DataBuffer.prototype.putBuffer = function (e) { return this.putBytes(e), e.clear(), this; }, i.DataBuffer.prototype.putString = function (e) { return this.putBytes(e, "utf16"); }, i.DataBuffer.prototype.putInt16 = function (e) { return this.accommodate(2), this.data.setInt16(this.write, e), this.write += 2, this; }, i.DataBuffer.prototype.putInt24 = function (e) { return this.accommodate(3), this.data.setInt16(this.write, e >> 8 & 65535), this.data.setInt8(this.write, e >> 16 & 255), this.write += 3, this; }, i.DataBuffer.prototype.putInt32 = function (e) { return this.accommodate(4), this.data.setInt32(this.write, e), this.write += 4, this; }, i.DataBuffer.prototype.putInt16Le = function (e) { return this.accommodate(2), this.data.setInt16(this.write, e, !0), this.write += 2, this; }, i.DataBuffer.prototype.putInt24Le = function (e) { return this.accommodate(3), this.data.setInt8(this.write, e >> 16 & 255), this.data.setInt16(this.write, e >> 8 & 65535, !0), this.write += 3, this; }, i.DataBuffer.prototype.putInt32Le = function (e) { return this.accommodate(4), this.data.setInt32(this.write, e, !0), this.write += 4, this; }, i.DataBuffer.prototype.putInt = function (e, t) { s(t), this.accommodate(t / 8); do { t -= 8, this.data.setInt8(this.write++, e >> t & 255); } while (t > 0); return this; }, i.DataBuffer.prototype.putSignedInt = function (e, t) { return s(t), this.accommodate(t / 8), e < 0 && (e += 2 << t - 1), this.putInt(e, t); }, i.DataBuffer.prototype.getByte = function () { return this.data.getInt8(this.read++); }, i.DataBuffer.prototype.getInt16 = function () { var e = this.data.getInt16(this.read); return this.read += 2, e; }, i.DataBuffer.prototype.getInt24 = function () { var e = this.data.getInt16(this.read) << 8 ^ this.data.getInt8(this.read + 2); return this.read += 3, e; }, i.DataBuffer.prototype.getInt32 = function () { var e = this.data.getInt32(this.read); return this.read += 4, e; }, i.DataBuffer.prototype.getInt16Le = function () { var e = this.data.getInt16(this.read, !0); return this.read += 2, e; }, i.DataBuffer.prototype.getInt24Le = function () { var e = this.data.getInt8(this.read) ^ this.data.getInt16(this.read + 1, !0) << 8; return this.read += 3, e; }, i.DataBuffer.prototype.getInt32Le = function () { var e = this.data.getInt32(this.read, !0); return this.read += 4, e; }, i.DataBuffer.prototype.getInt = function (e) { s(e); var t = 0; do { t = (t << 8) + this.data.getInt8(this.read++), e -= 8; } while (e > 0); return t; }, i.DataBuffer.prototype.getSignedInt = function (e) { var t = this.getInt(e), r = 2 << e - 2; return t >= r && (t -= r << 1), t; }, i.DataBuffer.prototype.getBytes = function (e) { var t; return e ? (e = Math.min(this.length(), e), t = this.data.slice(this.read, this.read + e), this.read += e) : 0 === e ? t = "" : (t = 0 === this.read ? this.data : this.data.slice(this.read), this.clear()), t; }, i.DataBuffer.prototype.bytes = function (e) { return void 0 === e ? this.data.slice(this.read) : this.data.slice(this.read, this.read + e); }, i.DataBuffer.prototype.at = function (e) { return this.data.getUint8(this.read + e); }, i.DataBuffer.prototype.setAt = function (e, t) { return this.data.setUint8(e, t), this; }, i.DataBuffer.prototype.last = function () { return this.data.getUint8(this.write - 1); }, i.DataBuffer.prototype.copy = function () { return new i.DataBuffer(this); }, i.DataBuffer.prototype.compact = function () { if (this.read > 0) { var e = new Uint8Array(this.data.buffer, this.read), t = new Uint8Array(e.byteLength); t.set(e), this.data = new DataView(t), this.write -= this.read, this.read = 0; } return this; }, i.DataBuffer.prototype.clear = function () { return this.data = new DataView(new ArrayBuffer(0)), this.read = this.write = 0, this; }, i.DataBuffer.prototype.truncate = function (e) { return this.write = Math.max(0, this.length() - e), this.read = Math.min(this.read, this.write), this; }, i.DataBuffer.prototype.toHex = function () { for (var e = "", t = this.read; t < this.data.byteLength; ++t) { var r = this.data.getUint8(t); r < 16 && (e += "0"), e += r.toString(16); } return e; }, i.DataBuffer.prototype.toString = function (e) { var t = new Uint8Array(this.data, this.read, this.length()); if ("binary" === (e = e || "utf8") || "raw" === e) return i.binary.raw.encode(t); if ("hex" === e) return i.binary.hex.encode(t); if ("base64" === e) return i.binary.base64.encode(t); if ("utf8" === e) return i.text.utf8.decode(t); if ("utf16" === e) return i.text.utf16.decode(t); throw new Error("Invalid encoding: " + e); }, i.createBuffer = function (e, t) { return t = t || "raw", void 0 !== e && "utf8" === t && (e = i.encodeUtf8(e)), new i.ByteBuffer(e); }, i.fillString = function (e, t) { for (var r = ""; t > 0;) 1 & t && (r += e), (t >>>= 1) > 0 && (e += e); return r; }, i.xorBytes = function (e, t, r) { for (var a = "", n = "", i = "", s = 0, o = 0; r > 0; --r, ++s) n = e.charCodeAt(s) ^ t.charCodeAt(s), o >= 10 && (a += i, i = "", o = 0), i += String.fromCharCode(n), ++o; return a += i; }, i.hexToBytes = function (e) { var t = "", r = 0; for (!0 & e.length && (r = 1, t += String.fromCharCode(parseInt(e[0], 16))); r < e.length; r += 2) t += String.fromCharCode(parseInt(e.substr(r, 2), 16)); return t; }, i.bytesToHex = function (e) { return i.createBuffer(e).toHex(); }, i.int32ToBytes = function (e) { return String.fromCharCode(e >> 24 & 255) + String.fromCharCode(e >> 16 & 255) + String.fromCharCode(e >> 8 & 255) + String.fromCharCode(255 & e); }; var c = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", u = [62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, 64, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], l = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"; i.encode64 = function (e, t) { for (var r, a, n, i = "", s = "", o = 0; o < e.length;) r = e.charCodeAt(o++), a = e.charCodeAt(o++), n = e.charCodeAt(o++), i += c.charAt(r >> 2), i += c.charAt((3 & r) << 4 | a >> 4), isNaN(a) ? i += "==" : (i += c.charAt((15 & a) << 2 | n >> 6), i += isNaN(n) ? "=" : c.charAt(63 & n)), t && i.length > t && (s += i.substr(0, t) + "\r\n", i = i.substr(t)); return s += i; }, i.decode64 = function (e) { e = e.replace(/[^A-Za-z0-9\+\/\=]/g, ""); for (var t, r, a, n, i = "", s = 0; s < e.length;) t = u[e.charCodeAt(s++) - 43], r = u[e.charCodeAt(s++) - 43], a = u[e.charCodeAt(s++) - 43], n = u[e.charCodeAt(s++) - 43], i += String.fromCharCode(t << 2 | r >> 4), 64 !== a && (i += String.fromCharCode((15 & r) << 4 | a >> 2), 64 !== n && (i += String.fromCharCode((3 & a) << 6 | n))); return i; }, i.encodeUtf8 = function (e) { return unescape(encodeURIComponent(e)); }, i.decodeUtf8 = function (e) { return decodeURIComponent(escape(e)); }, i.binary = { raw: {}, hex: {}, base64: {}, base58: {}, baseN: { encode: n.encode, decode: n.decode } }, i.binary.raw.encode = function (e) { return String.fromCharCode.apply(null, e); }, i.binary.raw.decode = function (e, t, r) { var a = t; a || (a = new Uint8Array(e.length)); for (var n = r = r || 0, i = 0; i < e.length; ++i) a[n++] = e.charCodeAt(i); return t ? n - r : a; }, i.binary.hex.encode = i.bytesToHex, i.binary.hex.decode = function (e, t, r) { var a = t; a || (a = new Uint8Array(Math.ceil(e.length / 2))); var n = 0, i = r = r || 0; for (1 & e.length && (n = 1, a[i++] = parseInt(e[0], 16)); n < e.length; n += 2) a[i++] = parseInt(e.substr(n, 2), 16); return t ? i - r : a; }, i.binary.base64.encode = function (e, t) { for (var r, a, n, i = "", s = "", o = 0; o < e.byteLength;) r = e[o++], a = e[o++], n = e[o++], i += c.charAt(r >> 2), i += c.charAt((3 & r) << 4 | a >> 4), isNaN(a) ? i += "==" : (i += c.charAt((15 & a) << 2 | n >> 6), i += isNaN(n) ? "=" : c.charAt(63 & n)), t && i.length > t && (s += i.substr(0, t) + "\r\n", i = i.substr(t)); return s += i; }, i.binary.base64.decode = function (e, t, r) { var a, n, i, s, o = t; o || (o = new Uint8Array(3 * Math.ceil(e.length / 4))), e = e.replace(/[^A-Za-z0-9\+\/\=]/g, ""); for (var c = 0, l = r = r || 0; c < e.length;) a = u[e.charCodeAt(c++) - 43], n = u[e.charCodeAt(c++) - 43], i = u[e.charCodeAt(c++) - 43], s = u[e.charCodeAt(c++) - 43], o[l++] = a << 2 | n >> 4, 64 !== i && (o[l++] = (15 & n) << 4 | i >> 2, 64 !== s && (o[l++] = (3 & i) << 6 | s)); return t ? l - r : o.subarray(0, l); }, i.binary.base58.encode = function (e, t) { return i.binary.baseN.encode(e, l, t); }, i.binary.base58.decode = function (e, t) { return i.binary.baseN.decode(e, l, t); }, i.text = { utf8: {}, utf16: {} }, i.text.utf8.encode = function (e, t, r) { e = i.encodeUtf8(e); var a = t; a || (a = new Uint8Array(e.length)); for (var n = r = r || 0, s = 0; s < e.length; ++s) a[n++] = e.charCodeAt(s); return t ? n - r : a; }, i.text.utf8.decode = function (e) { return i.decodeUtf8(String.fromCharCode.apply(null, e)); }, i.text.utf16.encode = function (e, t, r) { var a = t; a || (a = new Uint8Array(2 * e.length)); for (var n = new Uint16Array(a.buffer), i = r = r || 0, s = r, o = 0; o < e.length; ++o) n[s++] = e.charCodeAt(o), i += 2; return t ? i - r : a; }, i.text.utf16.decode = function (e) { return String.fromCharCode.apply(null, new Uint16Array(e.buffer)); }, i.deflate = function (e, t, r) { if (t = i.decode64(e.deflate(i.encode64(t)).rval), r) { var a = 2; 32 & t.charCodeAt(1) && (a = 6), t = t.substring(a, t.length - 4); } return t; }, i.inflate = function (e, t, r) { var a = e.inflate(i.encode64(t)).rval; return null === a ? null : i.decode64(a); }; var p = function (e, t, r) { if (!e) throw new Error("WebStorage not available."); var a; if (null === r ? a = e.removeItem(t) : (r = i.encode64(JSON.stringify(r)), a = e.setItem(t, r)), void 0 !== a && !0 !== a.rval) { var n = new Error(a.error.message); throw n.id = a.error.id, n.name = a.error.name, n; } }, f = function (e, t) { if (!e) throw new Error("WebStorage not available."); var r = e.getItem(t); if (e.init) if (null === r.rval) { if (r.error) { var a = new Error(r.error.message); throw a.id = r.error.id, a.name = r.error.name, a; } r = null; } else r = r.rval; return null !== r && (r = JSON.parse(i.decode64(r))), r; }, h = function (e, t, r, a) { var n = f(e, t); null === n && (n = {}), n[r] = a, p(e, t, n); }, d = function (e, t, r) { var a = f(e, t); return null !== a && (a = r in a ? a[r] : null), a; }, y = function (e, t, r) { var a = f(e, t); if (null !== a && r in a) { delete a[r]; var n = !0; for (var i in a) { n = !1; break; } n && (a = null), p(e, t, a); } }, g = function (e, t) { p(e, t, null); }, m = function (e, t, r) { var a, n = null; void 0 === r && (r = ["web", "flash"]); var i = !1, s = null; for (var o in r) { a = r[o]; try { if ("flash" === a || "both" === a) { if (null === t[0]) throw new Error("Flash local storage not available."); n = e.apply(this, t), i = "flash" === a; } "web" !== a && "both" !== a || (t[0] = localStorage, n = e.apply(this, t), i = !0); } catch (e) { s = e; } if (i) break; } if (!i) throw s; return n; }; i.setItem = function (e, t, r, a, n) { m(h, arguments, n); }, i.getItem = function (e, t, r, a) { return m(d, arguments, a); }, i.removeItem = function (e, t, r, a) { m(y, arguments, a); }, i.clearItems = function (e, t, r) { m(g, arguments, r); }, i.isEmpty = function (e) { for (var t in e) if (e.hasOwnProperty(t)) return !1; return !0; }, i.format = function (e) { for (var t, r, a = /%./g, n = 0, i = [], s = 0; t = a.exec(e);) { (r = e.substring(s, a.lastIndex - 2)).length > 0 && i.push(r), s = a.lastIndex; var o = t[0][1]; switch (o) { case "s": case "o": n < arguments.length ? i.push(arguments[1 + n++]) : i.push(""); break; case "%": i.push("%"); break; default: i.push("<%" + o + "?>"); } } return i.push(e.substring(s)), i.join(""); }, i.formatNumber = function (e, t, r, a) { var n = e, i = isNaN(t = Math.abs(t)) ? 2 : t, s = void 0 === r ? "," : r, o = void 0 === a ? "." : a, c = n < 0 ? "-" : "", u = parseInt(n = Math.abs(+n || 0).toFixed(i), 10) + "", l = u.length > 3 ? u.length % 3 : 0; return c + (l ? u.substr(0, l) + o : "") + u.substr(l).replace(/(\d{3})(?=\d)/g, "$1" + o) + (i ? s + Math.abs(n - u).toFixed(i).slice(2) : ""); }, i.formatSize = function (e) { return e = e >= 1073741824 ? i.formatNumber(e / 1073741824, 2, ".", "") + " GiB" : e >= 1048576 ? i.formatNumber(e / 1048576, 2, ".", "") + " MiB" : e >= 1024 ? i.formatNumber(e / 1024, 0) + " KiB" : i.formatNumber(e, 0) + " bytes"; }, i.bytesFromIP = function (e) { return -1 !== e.indexOf(".") ? i.bytesFromIPv4(e) : -1 !== e.indexOf(":") ? i.bytesFromIPv6(e) : null; }, i.bytesFromIPv4 = function (e) { if (4 !== (e = e.split(".")).length) return null; for (var t = i.createBuffer(), r = 0; r < e.length; ++r) { var a = parseInt(e[r], 10); if (isNaN(a)) return null; t.putByte(a); } return t.getBytes(); }, i.bytesFromIPv6 = function (e) { for (var t = 0, r = 2 * (8 - (e = e.split(":").filter(function (e) { return 0 === e.length && ++t, !0; })).length + t), a = i.createBuffer(), n = 0; n < 8; ++n) if (e[n] && 0 !== e[n].length) { var s = i.hexToBytes(e[n]); s.length < 2 && a.putByte(0), a.putBytes(s); } else a.fillWithByte(0, r), r = 0; return a.getBytes(); }, i.bytesToIP = function (e) { return 4 === e.length ? i.bytesToIPv4(e) : 16 === e.length ? i.bytesToIPv6(e) : null; }, i.bytesToIPv4 = function (e) { if (4 !== e.length) return null; for (var t = [], r = 0; r < e.length; ++r) t.push(e.charCodeAt(r)); return t.join("."); }, i.bytesToIPv6 = function (e) { if (16 !== e.length) return null; for (var t = [], r = [], a = 0, n = 0; n < e.length; n += 2) { for (var s = i.bytesToHex(e[n] + e[n + 1]); "0" === s[0] && "0" !== s;) s = s.substr(1); if ("0" === s) { var o = r[r.length - 1], c = t.length; o && c === o.end + 1 ? (o.end = c, o.end - o.start > r[a].end - r[a].start && (a = r.length - 1)) : r.push({ start: c, end: c }); } t.push(s); } if (r.length > 0) { var u = r[a]; u.end - u.start > 0 && (t.splice(u.start, u.end - u.start + 1, ""), 0 === u.start && t.unshift(""), 7 === u.end && t.push("")); } return t.join(":"); }, i.estimateCores = function (e, t) { if ("function" == typeof e && (t = e, e = {}), e = e || {}, "cores" in i && !e.update) return t(null, i.cores); if ("undefined" != typeof navigator && "hardwareConcurrency" in navigator && navigator.hardwareConcurrency > 0) return i.cores = navigator.hardwareConcurrency, t(null, i.cores); if ("undefined" == typeof Worker) return i.cores = 1, t(null, i.cores); if ("undefined" == typeof Blob) return i.cores = 2, t(null, i.cores); var r = URL.createObjectURL(new Blob(["(", function () { self.addEventListener("message", function (e) { for (var t = Date.now(), r = t + 4; Date.now() < r;); self.postMessage({ st: t, et: r }); }); }.toString(), ")()"], { type: "application/javascript" })); !function e(a, n, s) { if (0 === n) { var o = Math.floor(a.reduce(function (e, t) { return e + t; }, 0) / a.length); return i.cores = Math.max(1, o), URL.revokeObjectURL(r), t(null, i.cores); } !function (e, t) { for (var a = [], n = [], i = 0; i < e; ++i) { var s = new Worker(r); s.addEventListener("message", function (r) { if (n.push(r.data), n.length === e) { for (var i = 0; i < e; ++i) a[i].terminate(); t(null, n); } }), a.push(s); } for (i = 0; i < e; ++i) a[i].postMessage(i); }(s, function (t, r) { a.push(function (e, t) { for (var r = [], a = 0; a < e; ++a) for (var n = t[a], i = r[a] = [], s = 0; s < e; ++s) if (a !== s) { var o = t[s]; (n.st > o.st && n.st < o.et || o.st > n.st && o.st < n.et) && i.push(s); } return r.reduce(function (e, t) { return Math.max(e, t.length); }, 0); }(s, r)), e(a, n - 1, s); }); }([], 5, 16); }; }).call(this, r(34)); }, function (e, t, r) { var a = r(0); r(5), r(23), r(24), r(1), a.random && a.random.getBytes ? e.exports = a.random : function (t) { var r = {}, n = new Array(4), i = a.util.createBuffer(); function s() { var e = a.prng.create(r); return e.getBytes = function (t, r) { return e.generate(t, r); }, e.getBytesSync = function (t) { return e.generate(t); }, e; } r.formatKey = function (e) { var t = a.util.createBuffer(e); return (e = new Array(4))[0] = t.getInt32(), e[1] = t.getInt32(), e[2] = t.getInt32(), e[3] = t.getInt32(), a.aes._expandKey(e, !1); }, r.formatSeed = function (e) { var t = a.util.createBuffer(e); return (e = new Array(4))[0] = t.getInt32(), e[1] = t.getInt32(), e[2] = t.getInt32(), e[3] = t.getInt32(), e; }, r.cipher = function (e, t) { return a.aes._updateBlock(e, t, n, !1), i.putInt32(n[0]), i.putInt32(n[1]), i.putInt32(n[2]), i.putInt32(n[3]), i.getBytes(); }, r.increment = function (e) { return ++e[3], e; }, r.md = a.md.sha256; var o = s(), c = null, u = a.util.globalScope, l = u.crypto || u.msCrypto; if (l && l.getRandomValues && (c = function (e) { return l.getRandomValues(e); }), a.options.usePureJavaScript || !a.util.isNodejs && !c) { if ("undefined" == typeof window || window.document, o.collectInt(+new Date(), 32), "undefined" != typeof navigator) { var p = ""; for (var f in navigator) try { "string" == typeof navigator[f] && (p += navigator[f]); } catch (e) {} o.collect(p), p = null; } t && (t().mousemove(function (e) { o.collectInt(e.clientX, 16), o.collectInt(e.clientY, 16); }), t().keypress(function (e) { o.collectInt(e.charCode, 8); })); } if (a.random) for (var f in o) a.random[f] = o[f];else a.random = o; a.random.createInstance = s, e.exports = a.random; }("undefined" != typeof jQuery ? jQuery : null); }, function (e, t, r) { var a = r(0); r(1), r(6); var n = e.exports = a.asn1 = a.asn1 || {}; function i(e, t, r) { if (r > t) { var a = new Error("Too few bytes to parse DER."); throw a.available = e.length(), a.remaining = t, a.requested = r, a; } } n.Class = { UNIVERSAL: 0, APPLICATION: 64, CONTEXT_SPECIFIC: 128, PRIVATE: 192 }, n.Type = { NONE: 0, BOOLEAN: 1, INTEGER: 2, BITSTRING: 3, OCTETSTRING: 4, NULL: 5, OID: 6, ODESC: 7, EXTERNAL: 8, REAL: 9, ENUMERATED: 10, EMBEDDED: 11, UTF8: 12, ROID: 13, SEQUENCE: 16, SET: 17, PRINTABLESTRING: 19, IA5STRING: 22, UTCTIME: 23, GENERALIZEDTIME: 24, BMPSTRING: 30 }, n.create = function (e, t, r, i, s) { if (a.util.isArray(i)) { for (var o = [], c = 0; c < i.length; ++c) void 0 !== i[c] && o.push(i[c]); i = o; } var u = { tagClass: e, type: t, constructed: r, composed: r || a.util.isArray(i), value: i }; return s && "bitStringContents" in s && (u.bitStringContents = s.bitStringContents, u.original = n.copy(u)), u; }, n.copy = function (e, t) { var r; if (a.util.isArray(e)) { r = []; for (var i = 0; i < e.length; ++i) r.push(n.copy(e[i], t)); return r; } return "string" == typeof e ? e : (r = { tagClass: e.tagClass, type: e.type, constructed: e.constructed, composed: e.composed, value: n.copy(e.value, t) }, t && !t.excludeBitStringContents && (r.bitStringContents = e.bitStringContents), r); }, n.equals = function (e, t, r) { if (a.util.isArray(e)) { if (!a.util.isArray(t)) return !1; if (e.length !== t.length) return !1; for (var i = 0; i < e.length; ++i) if (!n.equals(e[i], t[i])) return !1; return !0; } if (typeof e != typeof t) return !1; if ("string" == typeof e) return e === t; var s = e.tagClass === t.tagClass && e.type === t.type && e.constructed === t.constructed && e.composed === t.composed && n.equals(e.value, t.value); return r && r.includeBitStringContents && (s = s && e.bitStringContents === t.bitStringContents), s; }, n.getBerValueLength = function (e) { var t = e.getByte(); if (128 !== t) return 128 & t ? e.getInt((127 & t) << 3) : t; }; n.fromDer = function (e, t) { return void 0 === t && (t = { strict: !0, decodeBitStrings: !0 }), "boolean" == typeof t && (t = { strict: t, decodeBitStrings: !0 }), "strict" in t || (t.strict = !0), "decodeBitStrings" in t || (t.decodeBitStrings = !0), "string" == typeof e && (e = a.util.createBuffer(e)), function e(t, r, a, s) { var o; i(t, r, 2); var c = t.getByte(); r--; var u = 192 & c, l = 31 & c; o = t.length(); var p, f, h = function (e, t) { var r = e.getByte(); if (t--, 128 !== r) { var a; if (128 & r) { var n = 127 & r; i(e, t, n), a = e.getInt(n << 3); } else a = r; if (a < 0) throw new Error("Negative length: " + a); return a; } }(t, r); if (r -= o - t.length(), void 0 !== h && h > r) { if (s.strict) { var d = new Error("Too few bytes to read ASN.1 value."); throw d.available = t.length(), d.remaining = r, d.requested = h, d; } h = r; } var y = 32 == (32 & c); if (y) if (p = [], void 0 === h) for (;;) { if (i(t, r, 2), t.bytes(2) === String.fromCharCode(0, 0)) { t.getBytes(2), r -= 2; break; } o = t.length(), p.push(e(t, r, a + 1, s)), r -= o - t.length(); } else for (; h > 0;) o = t.length(), p.push(e(t, h, a + 1, s)), r -= o - t.length(), h -= o - t.length(); void 0 === p && u === n.Class.UNIVERSAL && l === n.Type.BITSTRING && (f = t.bytes(h)); if (void 0 === p && s.decodeBitStrings && u === n.Class.UNIVERSAL && l === n.Type.BITSTRING && h > 1) { var g = t.read, m = r, v = 0; if (l === n.Type.BITSTRING && (i(t, r, 1), v = t.getByte(), r--), 0 === v) try { o = t.length(); var C = { verbose: s.verbose, strict: !0, decodeBitStrings: !0 }, E = e(t, r, a + 1, C), S = o - t.length(); r -= S, l == n.Type.BITSTRING && S++; var T = E.tagClass; S !== h || T !== n.Class.UNIVERSAL && T !== n.Class.CONTEXT_SPECIFIC || (p = [E]); } catch (e) {} void 0 === p && (t.read = g, r = m); } if (void 0 === p) { if (void 0 === h) { if (s.strict) throw new Error("Non-constructed ASN.1 object of indefinite length."); h = r; } if (l === n.Type.BMPSTRING) for (p = ""; h > 0; h -= 2) i(t, r, 2), p += String.fromCharCode(t.getInt16()), r -= 2;else p = t.getBytes(h); } var I = void 0 === f ? null : { bitStringContents: f }; return n.create(u, l, y, p, I); }(e, e.length(), 0, t); }, n.toDer = function (e) { var t = a.util.createBuffer(), r = e.tagClass | e.type, i = a.util.createBuffer(), s = !1; if ("bitStringContents" in e && (s = !0, e.original && (s = n.equals(e, e.original))), s) i.putBytes(e.bitStringContents);else if (e.composed) { e.constructed ? r |= 32 : i.putByte(0); for (var o = 0; o < e.value.length; ++o) void 0 !== e.value[o] && i.putBuffer(n.toDer(e.value[o])); } else if (e.type === n.Type.BMPSTRING) for (o = 0; o < e.value.length; ++o) i.putInt16(e.value.charCodeAt(o));else e.type === n.Type.INTEGER && e.value.length > 1 && (0 === e.value.charCodeAt(0) && 0 == (128 & e.value.charCodeAt(1)) || 255 === e.value.charCodeAt(0) && 128 == (128 & e.value.charCodeAt(1))) ? i.putBytes(e.value.substr(1)) : i.putBytes(e.value); if (t.putByte(r), i.length() <= 127) t.putByte(127 & i.length());else { var c = i.length(), u = ""; do { u += String.fromCharCode(255 & c), c >>>= 8; } while (c > 0); t.putByte(128 | u.length); for (o = u.length - 1; o >= 0; --o) t.putByte(u.charCodeAt(o)); } return t.putBuffer(i), t; }, n.oidToDer = function (e) { var t, r, n, i, s = e.split("."), o = a.util.createBuffer(); o.putByte(40 * parseInt(s[0], 10) + parseInt(s[1], 10)); for (var c = 2; c < s.length; ++c) { t = !0, r = [], n = parseInt(s[c], 10); do { i = 127 & n, n >>>= 7, t || (i |= 128), r.push(i), t = !1; } while (n > 0); for (var u = r.length - 1; u >= 0; --u) o.putByte(r[u]); } return o; }, n.derToOid = function (e) { var t; "string" == typeof e && (e = a.util.createBuffer(e)); var r = e.getByte(); t = Math.floor(r / 40) + "." + r % 40; for (var n = 0; e.length() > 0;) n <<= 7, 128 & (r = e.getByte()) ? n += 127 & r : (t += "." + (n + r), n = 0); return t; }, n.utcTimeToDate = function (e) { var t = new Date(), r = parseInt(e.substr(0, 2), 10); r = r >= 50 ? 1900 + r : 2e3 + r; var a = parseInt(e.substr(2, 2), 10) - 1, n = parseInt(e.substr(4, 2), 10), i = parseInt(e.substr(6, 2), 10), s = parseInt(e.substr(8, 2), 10), o = 0; if (e.length > 11) { var c = e.charAt(10), u = 10; "+" !== c && "-" !== c && (o = parseInt(e.substr(10, 2), 10), u += 2); } if (t.setUTCFullYear(r, a, n), t.setUTCHours(i, s, o, 0), u && ("+" === (c = e.charAt(u)) || "-" === c)) { var l = 60 * parseInt(e.substr(u + 1, 2), 10) + parseInt(e.substr(u + 4, 2), 10); l *= 6e4, "+" === c ? t.setTime(+t - l) : t.setTime(+t + l); } return t; }, n.generalizedTimeToDate = function (e) { var t = new Date(), r = parseInt(e.substr(0, 4), 10), a = parseInt(e.substr(4, 2), 10) - 1, n = parseInt(e.substr(6, 2), 10), i = parseInt(e.substr(8, 2), 10), s = parseInt(e.substr(10, 2), 10), o = parseInt(e.substr(12, 2), 10), c = 0, u = 0, l = !1; "Z" === e.charAt(e.length - 1) && (l = !0); var p = e.length - 5, f = e.charAt(p); "+" !== f && "-" !== f || (u = 60 * parseInt(e.substr(p + 1, 2), 10) + parseInt(e.substr(p + 4, 2), 10), u *= 6e4, "+" === f && (u *= -1), l = !0); return "." === e.charAt(14) && (c = 1e3 * parseFloat(e.substr(14), 10)), l ? (t.setUTCFullYear(r, a, n), t.setUTCHours(i, s, o, c), t.setTime(+t + u)) : (t.setFullYear(r, a, n), t.setHours(i, s, o, c)), t; }, n.dateToUtcTime = function (e) { if ("string" == typeof e) return e; var t = "", r = []; r.push(("" + e.getUTCFullYear()).substr(2)), r.push("" + (e.getUTCMonth() + 1)), r.push("" + e.getUTCDate()), r.push("" + e.getUTCHours()), r.push("" + e.getUTCMinutes()), r.push("" + e.getUTCSeconds()); for (var a = 0; a < r.length; ++a) r[a].length < 2 && (t += "0"), t += r[a]; return t += "Z"; }, n.dateToGeneralizedTime = function (e) { if ("string" == typeof e) return e; var t = "", r = []; r.push("" + e.getUTCFullYear()), r.push("" + (e.getUTCMonth() + 1)), r.push("" + e.getUTCDate()), r.push("" + e.getUTCHours()), r.push("" + e.getUTCMinutes()), r.push("" + e.getUTCSeconds()); for (var a = 0; a < r.length; ++a) r[a].length < 2 && (t += "0"), t += r[a]; return t += "Z"; }, n.integerToDer = function (e) { var t = a.util.createBuffer(); if (e >= -128 && e < 128) return t.putSignedInt(e, 8); if (e >= -32768 && e < 32768) return t.putSignedInt(e, 16); if (e >= -8388608 && e < 8388608) return t.putSignedInt(e, 24); if (e >= -2147483648 && e < 2147483648) return t.putSignedInt(e, 32); var r = new Error("Integer too large; max is 32-bits."); throw r.integer = e, r; }, n.derToInteger = function (e) { "string" == typeof e && (e = a.util.createBuffer(e)); var t = 8 * e.length(); if (t > 32) throw new Error("Integer too large; max is 32-bits."); return e.getSignedInt(t); }, n.validate = function (e, t, r, i) { var s = !1; if (e.tagClass !== t.tagClass && void 0 !== t.tagClass || e.type !== t.type && void 0 !== t.type) i && (e.tagClass !== t.tagClass && i.push("[" + t.name + '] Expected tag class "' + t.tagClass + '", got "' + e.tagClass + '"'), e.type !== t.type && i.push("[" + t.name + '] Expected type "' + t.type + '", got "' + e.type + '"'));else if (e.constructed === t.constructed || void 0 === t.constructed) { if (s = !0, t.value && a.util.isArray(t.value)) for (var o = 0, c = 0; s && c < t.value.length; ++c) s = t.value[c].optional || !1, e.value[o] && ((s = n.validate(e.value[o], t.value[c], r, i)) ? ++o : t.value[c].optional && (s = !0)), !s && i && i.push("[" + t.name + '] Tag class "' + t.tagClass + '", type "' + t.type + '" expected value length "' + t.value.length + '", got "' + e.value.length + '"'); if (s && r) if (t.capture && (r[t.capture] = e.value), t.captureAsn1 && (r[t.captureAsn1] = e), t.captureBitStringContents && "bitStringContents" in e && (r[t.captureBitStringContents] = e.bitStringContents), t.captureBitStringValue && "bitStringContents" in e) if (e.bitStringContents.length < 2) r[t.captureBitStringValue] = "";else { if (0 !== e.bitStringContents.charCodeAt(0)) throw new Error("captureBitStringValue only supported for zero unused bits"); r[t.captureBitStringValue] = e.bitStringContents.slice(1); } } else i && i.push("[" + t.name + '] Expected constructed "' + t.constructed + '", got "' + e.constructed + '"'); return s; }; var s = /[^\\u0000-\\u00ff]/; n.prettyPrint = function (e, t, r) { var i = ""; r = r || 2, (t = t || 0) > 0 && (i += "\n"); for (var o = "", c = 0; c < t * r; ++c) o += " "; switch (i += o + "Tag: ", e.tagClass) { case n.Class.UNIVERSAL: i += "Universal:"; break; case n.Class.APPLICATION: i += "Application:"; break; case n.Class.CONTEXT_SPECIFIC: i += "Context-Specific:"; break; case n.Class.PRIVATE: i += "Private:"; } if (e.tagClass === n.Class.UNIVERSAL) switch (i += e.type, e.type) { case n.Type.NONE: i += " (None)"; break; case n.Type.BOOLEAN: i += " (Boolean)"; break; case n.Type.INTEGER: i += " (Integer)"; break; case n.Type.BITSTRING: i += " (Bit string)"; break; case n.Type.OCTETSTRING: i += " (Octet string)"; break; case n.Type.NULL: i += " (Null)"; break; case n.Type.OID: i += " (Object Identifier)"; break; case n.Type.ODESC: i += " (Object Descriptor)"; break; case n.Type.EXTERNAL: i += " (External or Instance of)"; break; case n.Type.REAL: i += " (Real)"; break; case n.Type.ENUMERATED: i += " (Enumerated)"; break; case n.Type.EMBEDDED: i += " (Embedded PDV)"; break; case n.Type.UTF8: i += " (UTF8)"; break; case n.Type.ROID: i += " (Relative Object Identifier)"; break; case n.Type.SEQUENCE: i += " (Sequence)"; break; case n.Type.SET: i += " (Set)"; break; case n.Type.PRINTABLESTRING: i += " (Printable String)"; break; case n.Type.IA5String: i += " (IA5String (ASCII))"; break; case n.Type.UTCTIME: i += " (UTC time)"; break; case n.Type.GENERALIZEDTIME: i += " (Generalized time)"; break; case n.Type.BMPSTRING: i += " (BMP String)"; } else i += e.type; if (i += "\n", i += o + "Constructed: " + e.constructed + "\n", e.composed) { var u = 0, l = ""; for (c = 0; c < e.value.length; ++c) void 0 !== e.value[c] && (u += 1, l += n.prettyPrint(e.value[c], t + 1, r), c + 1 < e.value.length && (l += ",")); i += o + "Sub values: " + u + l; } else { if (i += o + "Value: ", e.type === n.Type.OID) { var p = n.derToOid(e.value); i += p, a.pki && a.pki.oids && p in a.pki.oids && (i += " (" + a.pki.oids[p] + ") "); } if (e.type === n.Type.INTEGER) try { i += n.derToInteger(e.value); } catch (t) { i += "0x" + a.util.bytesToHex(e.value); } else if (e.type === n.Type.BITSTRING) { if (e.value.length > 1 ? i += "0x" + a.util.bytesToHex(e.value.slice(1)) : i += "(none)", e.value.length > 0) { var f = e.value.charCodeAt(0); 1 == f ? i += " (1 unused bit shown)" : f > 1 && (i += " (" + f + " unused bits shown)"); } } else e.type === n.Type.OCTETSTRING ? (s.test(e.value) || (i += "(" + e.value + ") "), i += "0x" + a.util.bytesToHex(e.value)) : e.type === n.Type.UTF8 ? i += a.util.decodeUtf8(e.value) : e.type === n.Type.PRINTABLESTRING || e.type === n.Type.IA5String ? i += e.value : s.test(e.value) ? i += "0x" + a.util.bytesToHex(e.value) : 0 === e.value.length ? i += "[null]" : i += e.value; } return i; }; }, function (e, t, r) { var a = r(0); e.exports = a.md = a.md || {}, a.md.algorithms = a.md.algorithms || {}; }, function (e, t, r) { var a = r(0); function n(e, t) { a.cipher.registerAlgorithm(e, function () { return new a.aes.Algorithm(e, t); }); } r(13), r(19), r(1), e.exports = a.aes = a.aes || {}, a.aes.startEncrypting = function (e, t, r, a) { var n = d({ key: e, output: r, decrypt: !1, mode: a }); return n.start(t), n; }, a.aes.createEncryptionCipher = function (e, t) { return d({ key: e, output: null, decrypt: !1, mode: t }); }, a.aes.startDecrypting = function (e, t, r, a) { var n = d({ key: e, output: r, decrypt: !0, mode: a }); return n.start(t), n; }, a.aes.createDecryptionCipher = function (e, t) { return d({ key: e, output: null, decrypt: !0, mode: t }); }, a.aes.Algorithm = function (e, t) { l || p(); var r = this; r.name = e, r.mode = new t({ blockSize: 16, cipher: { encrypt: function (e, t) { return h(r._w, e, t, !1); }, decrypt: function (e, t) { return h(r._w, e, t, !0); } } }), r._init = !1; }, a.aes.Algorithm.prototype.initialize = function (e) { if (!this._init) { var t, r = e.key; if ("string" != typeof r || 16 !== r.length && 24 !== r.length && 32 !== r.length) { if (a.util.isArray(r) && (16 === r.length || 24 === r.length || 32 === r.length)) { t = r, r = a.util.createBuffer(); for (var n = 0; n < t.length; ++n) r.putByte(t[n]); } } else r = a.util.createBuffer(r); if (!a.util.isArray(r)) { t = r, r = []; var i = t.length(); if (16 === i || 24 === i || 32 === i) { i >>>= 2; for (n = 0; n < i; ++n) r.push(t.getInt32()); } } if (!a.util.isArray(r) || 4 !== r.length && 6 !== r.length && 8 !== r.length) throw new Error("Invalid key parameter."); var s = this.mode.name, o = -1 !== ["CFB", "OFB", "CTR", "GCM"].indexOf(s); this._w = f(r, e.decrypt && !o), this._init = !0; } }, a.aes._expandKey = function (e, t) { return l || p(), f(e, t); }, a.aes._updateBlock = h, n("AES-ECB", a.cipher.modes.ecb), n("AES-CBC", a.cipher.modes.cbc), n("AES-CFB", a.cipher.modes.cfb), n("AES-OFB", a.cipher.modes.ofb), n("AES-CTR", a.cipher.modes.ctr), n("AES-GCM", a.cipher.modes.gcm); var i, s, o, c, u, l = !1; function p() { l = !0, o = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54]; for (var e = new Array(256), t = 0; t < 128; ++t) e[t] = t << 1, e[t + 128] = t + 128 << 1 ^ 283; i = new Array(256), s = new Array(256), c = new Array(4), u = new Array(4); for (t = 0; t < 4; ++t) c[t] = new Array(256), u[t] = new Array(256); var r, a, n, p, f, h, d, y = 0, g = 0; for (t = 0; t < 256; ++t) { p = (p = g ^ g << 1 ^ g << 2 ^ g << 3 ^ g << 4) >> 8 ^ 255 & p ^ 99, i[y] = p, s[p] = y, h = (f = e[p]) << 24 ^ p << 16 ^ p << 8 ^ p ^ f, d = ((r = e[y]) ^ (a = e[r]) ^ (n = e[a])) << 24 ^ (y ^ n) << 16 ^ (y ^ a ^ n) << 8 ^ y ^ r ^ n; for (var m = 0; m < 4; ++m) c[m][y] = h, u[m][p] = d, h = h << 24 | h >>> 8, d = d << 24 | d >>> 8; 0 === y ? y = g = 1 : (y = r ^ e[e[e[r ^ n]]], g ^= e[e[g]]); } } function f(e, t) { for (var r, a = e.slice(0), n = 1, s = a.length, c = 4 * (s + 6 + 1), l = s; l < c; ++l) r = a[l - 1], l % s == 0 ? (r = i[r >>> 16 & 255] << 24 ^ i[r >>> 8 & 255] << 16 ^ i[255 & r] << 8 ^ i[r >>> 24] ^ o[n] << 24, n++) : s > 6 && l % s == 4 && (r = i[r >>> 24] << 24 ^ i[r >>> 16 & 255] << 16 ^ i[r >>> 8 & 255] << 8 ^ i[255 & r]), a[l] = a[l - s] ^ r; if (t) { for (var p, f = u[0], h = u[1], d = u[2], y = u[3], g = a.slice(0), m = (l = 0, (c = a.length) - 4); l < c; l += 4, m -= 4) if (0 === l || l === c - 4) g[l] = a[m], g[l + 1] = a[m + 3], g[l + 2] = a[m + 2], g[l + 3] = a[m + 1];else for (var v = 0; v < 4; ++v) p = a[m + v], g[l + (3 & -v)] = f[i[p >>> 24]] ^ h[i[p >>> 16 & 255]] ^ d[i[p >>> 8 & 255]] ^ y[i[255 & p]]; a = g; } return a; } function h(e, t, r, a) { var n, o, l, p, f, h, d, y, g, m, v, C, E = e.length / 4 - 1; a ? (n = u[0], o = u[1], l = u[2], p = u[3], f = s) : (n = c[0], o = c[1], l = c[2], p = c[3], f = i), h = t[0] ^ e[0], d = t[a ? 3 : 1] ^ e[1], y = t[2] ^ e[2], g = t[a ? 1 : 3] ^ e[3]; for (var S = 3, T = 1; T < E; ++T) m = n[h >>> 24] ^ o[d >>> 16 & 255] ^ l[y >>> 8 & 255] ^ p[255 & g] ^ e[++S], v = n[d >>> 24] ^ o[y >>> 16 & 255] ^ l[g >>> 8 & 255] ^ p[255 & h] ^ e[++S], C = n[y >>> 24] ^ o[g >>> 16 & 255] ^ l[h >>> 8 & 255] ^ p[255 & d] ^ e[++S], g = n[g >>> 24] ^ o[h >>> 16 & 255] ^ l[d >>> 8 & 255] ^ p[255 & y] ^ e[++S], h = m, d = v, y = C; r[0] = f[h >>> 24] << 24 ^ f[d >>> 16 & 255] << 16 ^ f[y >>> 8 & 255] << 8 ^ f[255 & g] ^ e[++S], r[a ? 3 : 1] = f[d >>> 24] << 24 ^ f[y >>> 16 & 255] << 16 ^ f[g >>> 8 & 255] << 8 ^ f[255 & h] ^ e[++S], r[2] = f[y >>> 24] << 24 ^ f[g >>> 16 & 255] << 16 ^ f[h >>> 8 & 255] << 8 ^ f[255 & d] ^ e[++S], r[a ? 1 : 3] = f[g >>> 24] << 24 ^ f[h >>> 16 & 255] << 16 ^ f[d >>> 8 & 255] << 8 ^ f[255 & y] ^ e[++S]; } function d(e) { var t, r = "AES-" + ((e = e || {}).mode || "CBC").toUpperCase(), n = (t = e.decrypt ? a.cipher.createDecipher(r, e.key) : a.cipher.createCipher(r, e.key)).start; return t.start = function (e, r) { var i = null; r instanceof a.util.ByteBuffer && (i = r, r = {}), (r = r || {}).output = i, r.iv = e, n.call(t, r); }, t; } }, function (e, t, r) { var a = r(0); a.pki = a.pki || {}; var n = e.exports = a.pki.oids = a.oids = a.oids || {}; function i(e, t) { n[e] = t, n[t] = e; } function s(e, t) { n[e] = t; } i("1.2.840.113549.1.1.1", "rsaEncryption"), i("1.2.840.113549.1.1.4", "md5WithRSAEncryption"), i("1.2.840.113549.1.1.5", "sha1WithRSAEncryption"), i("1.2.840.113549.1.1.7", "RSAES-OAEP"), i("1.2.840.113549.1.1.8", "mgf1"), i("1.2.840.113549.1.1.9", "pSpecified"), i("1.2.840.113549.1.1.10", "RSASSA-PSS"), i("1.2.840.113549.1.1.11", "sha256WithRSAEncryption"), i("1.2.840.113549.1.1.12", "sha384WithRSAEncryption"), i("1.2.840.113549.1.1.13", "sha512WithRSAEncryption"), i("1.3.101.112", "EdDSA25519"), i("1.2.840.10040.4.3", "dsa-with-sha1"), i("1.3.14.3.2.7", "desCBC"), i("1.3.14.3.2.26", "sha1"), i("2.16.840.1.101.3.4.2.1", "sha256"), i("2.16.840.1.101.3.4.2.2", "sha384"), i("2.16.840.1.101.3.4.2.3", "sha512"), i("1.2.840.113549.2.5", "md5"), i("1.2.840.113549.1.7.1", "data"), i("1.2.840.113549.1.7.2", "signedData"), i("1.2.840.113549.1.7.3", "envelopedData"), i("1.2.840.113549.1.7.4", "signedAndEnvelopedData"), i("1.2.840.113549.1.7.5", "digestedData"), i("1.2.840.113549.1.7.6", "encryptedData"), i("1.2.840.113549.1.9.1", "emailAddress"), i("1.2.840.113549.1.9.2", "unstructuredName"), i("1.2.840.113549.1.9.3", "contentType"), i("1.2.840.113549.1.9.4", "messageDigest"), i("1.2.840.113549.1.9.5", "signingTime"), i("1.2.840.113549.1.9.6", "counterSignature"), i("1.2.840.113549.1.9.7", "challengePassword"), i("1.2.840.113549.1.9.8", "unstructuredAddress"), i("1.2.840.113549.1.9.14", "extensionRequest"), i("1.2.840.113549.1.9.20", "friendlyName"), i("1.2.840.113549.1.9.21", "localKeyId"), i("1.2.840.113549.1.9.22.1", "x509Certificate"), i("1.2.840.113549.1.12.10.1.1", "keyBag"), i("1.2.840.113549.1.12.10.1.2", "pkcs8ShroudedKeyBag"), i("1.2.840.113549.1.12.10.1.3", "certBag"), i("1.2.840.113549.1.12.10.1.4", "crlBag"), i("1.2.840.113549.1.12.10.1.5", "secretBag"), i("1.2.840.113549.1.12.10.1.6", "safeContentsBag"), i("1.2.840.113549.1.5.13", "pkcs5PBES2"), i("1.2.840.113549.1.5.12", "pkcs5PBKDF2"), i("1.2.840.113549.1.12.1.1", "pbeWithSHAAnd128BitRC4"), i("1.2.840.113549.1.12.1.2", "pbeWithSHAAnd40BitRC4"), i("1.2.840.113549.1.12.1.3", "pbeWithSHAAnd3-KeyTripleDES-CBC"), i("1.2.840.113549.1.12.1.4", "pbeWithSHAAnd2-KeyTripleDES-CBC"), i("1.2.840.113549.1.12.1.5", "pbeWithSHAAnd128BitRC2-CBC"), i("1.2.840.113549.1.12.1.6", "pbewithSHAAnd40BitRC2-CBC"), i("1.2.840.113549.2.7", "hmacWithSHA1"), i("1.2.840.113549.2.8", "hmacWithSHA224"), i("1.2.840.113549.2.9", "hmacWithSHA256"), i("1.2.840.113549.2.10", "hmacWithSHA384"), i("1.2.840.113549.2.11", "hmacWithSHA512"), i("1.2.840.113549.3.7", "des-EDE3-CBC"), i("2.16.840.1.101.3.4.1.2", "aes128-CBC"), i("2.16.840.1.101.3.4.1.22", "aes192-CBC"), i("2.16.840.1.101.3.4.1.42", "aes256-CBC"), i("2.5.4.3", "commonName"), i("2.5.4.4", "surname"), i("2.5.4.5", "serialNumber"), i("2.5.4.6", "countryName"), i("2.5.4.7", "localityName"), i("2.5.4.8", "stateOrProvinceName"), i("2.5.4.9", "streetAddress"), i("2.5.4.10", "organizationName"), i("2.5.4.11", "organizationalUnitName"), i("2.5.4.12", "title"), i("2.5.4.13", "description"), i("2.5.4.15", "businessCategory"), i("2.5.4.17", "postalCode"), i("2.5.4.42", "givenName"), i("1.3.6.1.4.1.311.60.2.1.2", "jurisdictionOfIncorporationStateOrProvinceName"), i("1.3.6.1.4.1.311.60.2.1.3", "jurisdictionOfIncorporationCountryName"), i("2.16.840.1.113730.1.1", "nsCertType"), i("2.16.840.1.113730.1.13", "nsComment"), s("2.5.29.1", "authorityKeyIdentifier"), s("2.5.29.2", "keyAttributes"), s("2.5.29.3", "certificatePolicies"), s("2.5.29.4", "keyUsageRestriction"), s("2.5.29.5", "policyMapping"), s("2.5.29.6", "subtreesConstraint"), s("2.5.29.7", "subjectAltName"), s("2.5.29.8", "issuerAltName"), s("2.5.29.9", "subjectDirectoryAttributes"), s("2.5.29.10", "basicConstraints"), s("2.5.29.11", "nameConstraints"), s("2.5.29.12", "policyConstraints"), s("2.5.29.13", "basicConstraints"), i("2.5.29.14", "subjectKeyIdentifier"), i("2.5.29.15", "keyUsage"), s("2.5.29.16", "privateKeyUsagePeriod"), i("2.5.29.17", "subjectAltName"), i("2.5.29.18", "issuerAltName"), i("2.5.29.19", "basicConstraints"), s("2.5.29.20", "cRLNumber"), s("2.5.29.21", "cRLReason"), s("2.5.29.22", "expirationDate"), s("2.5.29.23", "instructionCode"), s("2.5.29.24", "invalidityDate"), s("2.5.29.25", "cRLDistributionPoints"), s("2.5.29.26", "issuingDistributionPoint"), s("2.5.29.27", "deltaCRLIndicator"), s("2.5.29.28", "issuingDistributionPoint"), s("2.5.29.29", "certificateIssuer"), s("2.5.29.30", "nameConstraints"), i("2.5.29.31", "cRLDistributionPoints"), i("2.5.29.32", "certificatePolicies"), s("2.5.29.33", "policyMappings"), s("2.5.29.34", "policyConstraints"), i("2.5.29.35", "authorityKeyIdentifier"), s("2.5.29.36", "policyConstraints"), i("2.5.29.37", "extKeyUsage"), s("2.5.29.46", "freshestCRL"), s("2.5.29.54", "inhibitAnyPolicy"), i("1.3.6.1.4.1.11129.2.4.2", "timestampList"), i("1.3.6.1.5.5.7.1.1", "authorityInfoAccess"), i("1.3.6.1.5.5.7.3.1", "serverAuth"), i("1.3.6.1.5.5.7.3.2", "clientAuth"), i("1.3.6.1.5.5.7.3.3", "codeSigning"), i("1.3.6.1.5.5.7.3.4", "emailProtection"), i("1.3.6.1.5.5.7.3.8", "timeStamping"); }, function (e, t, r) { var a = r(0); r(1); var n = e.exports = a.pem = a.pem || {}; function i(e) { for (var t = e.name + ": ", r = [], a = function (e, t) { return " " + t; }, n = 0; n < e.values.length; ++n) r.push(e.values[n].replace(/^(\S+\r\n)/, a)); t += r.join(",") + "\r\n"; var i = 0, s = -1; for (n = 0; n < t.length; ++n, ++i) if (i > 65 && -1 !== s) { var o = t[s]; "," === o ? (++s, t = t.substr(0, s) + "\r\n " + t.substr(s)) : t = t.substr(0, s) + "\r\n" + o + t.substr(s + 1), i = n - s - 1, s = -1, ++n; } else " " !== t[n] && "\t" !== t[n] && "," !== t[n] || (s = n); return t; } function s(e) { return e.replace(/^\s+/, ""); } n.encode = function (e, t) { t = t || {}; var r, n = "-----BEGIN " + e.type + "-----\r\n"; if (e.procType && (n += i(r = { name: "Proc-Type", values: [String(e.procType.version), e.procType.type] })), e.contentDomain && (n += i(r = { name: "Content-Domain", values: [e.contentDomain] })), e.dekInfo && (r = { name: "DEK-Info", values: [e.dekInfo.algorithm] }, e.dekInfo.parameters && r.values.push(e.dekInfo.parameters), n += i(r)), e.headers) for (var s = 0; s < e.headers.length; ++s) n += i(e.headers[s]); return e.procType && (n += "\r\n"), n += a.util.encode64(e.body, t.maxline || 64) + "\r\n", n += "-----END " + e.type + "-----\r\n"; }, n.decode = function (e) { for (var t, r = [], n = /\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g, i = /([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/, o = /\r?\n/; t = n.exec(e);) { var c = { type: t[1], procType: null, contentDomain: null, dekInfo: null, headers: [], body: a.util.decode64(t[3]) }; if (r.push(c), t[2]) { for (var u = t[2].split(o), l = 0; t && l < u.length;) { for (var p = u[l].replace(/\s+$/, ""), f = l + 1; f < u.length; ++f) { var h = u[f]; if (!/\s/.test(h[0])) break; p += h, l = f; } if (t = p.match(i)) { for (var d = { name: t[1], values: [] }, y = t[2].split(","), g = 0; g < y.length; ++g) d.values.push(s(y[g])); if (c.procType) { if (c.contentDomain || "Content-Domain" !== d.name) { if (c.dekInfo || "DEK-Info" !== d.name) c.headers.push(d);else { if (0 === d.values.length) throw new Error('Invalid PEM formatted message. The "DEK-Info" header must have at least one subfield.'); c.dekInfo = { algorithm: y[0], parameters: y[1] || null }; } } else c.contentDomain = y[0] || ""; } else { if ("Proc-Type" !== d.name) throw new Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".'); if (2 !== d.values.length) throw new Error('Invalid PEM formatted message. The "Proc-Type" header must have two subfields.'); c.procType = { version: y[0], type: y[1] }; } } ++l; } if ("ENCRYPTED" === c.procType && !c.dekInfo) throw new Error('Invalid PEM formatted message. The "DEK-Info" header must be present if "Proc-Type" is "ENCRYPTED".'); } } if (0 === r.length) throw new Error("Invalid PEM formatted message."); return r; }; }, function (e, t, r) { var a = r(0); r(4), r(1), (e.exports = a.hmac = a.hmac || {}).create = function () { var e = null, t = null, r = null, n = null, i = { start: function (i, s) { if (null !== i) if ("string" == typeof i) { if (!((i = i.toLowerCase()) in a.md.algorithms)) throw new Error('Unknown hash algorithm "' + i + '"'); t = a.md.algorithms[i].create(); } else t = i; if (null === s) s = e;else { if ("string" == typeof s) s = a.util.createBuffer(s);else if (a.util.isArray(s)) { var o = s; s = a.util.createBuffer(); for (var c = 0; c < o.length; ++c) s.putByte(o[c]); } var u = s.length(); u > t.blockLength && (t.start(), t.update(s.bytes()), s = t.digest()), r = a.util.createBuffer(), n = a.util.createBuffer(), u = s.length(); for (c = 0; c < u; ++c) { o = s.at(c); r.putByte(54 ^ o), n.putByte(92 ^ o); } if (u < t.blockLength) for (o = t.blockLength - u, c = 0; c < o; ++c) r.putByte(54), n.putByte(92); e = s, r = r.bytes(), n = n.bytes(); } t.start(), t.update(r); }, update: function (e) { t.update(e); }, getMac: function () { var e = t.digest().bytes(); return t.start(), t.update(n), t.update(e), t.digest(); } }; return i.digest = i.getMac, i; }; }, function (e, t, r) { var a = r(0); r(4), r(1); var n = e.exports = a.sha1 = a.sha1 || {}; a.md.sha1 = a.md.algorithms.sha1 = n, n.create = function () { s || (i = String.fromCharCode(128), i += a.util.fillString(String.fromCharCode(0), 64), s = !0); var e = null, t = a.util.createBuffer(), r = new Array(80), n = { algorithm: "sha1", blockLength: 64, digestLength: 20, messageLength: 0, fullMessageLength: null, messageLengthSize: 8, start: function () { n.messageLength = 0, n.fullMessageLength = n.messageLength64 = []; for (var r = n.messageLengthSize / 4, i = 0; i < r; ++i) n.fullMessageLength.push(0); return t = a.util.createBuffer(), e = { h0: 1732584193, h1: 4023233417, h2: 2562383102, h3: 271733878, h4: 3285377520 }, n; } }; return n.start(), n.update = function (i, s) { "utf8" === s && (i = a.util.encodeUtf8(i)); var c = i.length; n.messageLength += c, c = [c / 4294967296 >>> 0, c >>> 0]; for (var u = n.fullMessageLength.length - 1; u >= 0; --u) n.fullMessageLength[u] += c[1], c[1] = c[0] + (n.fullMessageLength[u] / 4294967296 >>> 0), n.fullMessageLength[u] = n.fullMessageLength[u] >>> 0, c[0] = c[1] / 4294967296 >>> 0; return t.putBytes(i), o(e, r, t), (t.read > 2048 || 0 === t.length()) && t.compact(), n; }, n.digest = function () { var s = a.util.createBuffer(); s.putBytes(t.bytes()); var c, u = n.fullMessageLength[n.fullMessageLength.length - 1] + n.messageLengthSize & n.blockLength - 1; s.putBytes(i.substr(0, n.blockLength - u)); for (var l = 8 * n.fullMessageLength[0], p = 0; p < n.fullMessageLength.length - 1; ++p) l += (c = 8 * n.fullMessageLength[p + 1]) / 4294967296 >>> 0, s.putInt32(l >>> 0), l = c >>> 0; s.putInt32(l); var f = { h0: e.h0, h1: e.h1, h2: e.h2, h3: e.h3, h4: e.h4 }; o(f, r, s); var h = a.util.createBuffer(); return h.putInt32(f.h0), h.putInt32(f.h1), h.putInt32(f.h2), h.putInt32(f.h3), h.putInt32(f.h4), h; }, n; }; var i = null, s = !1; function o(e, t, r) { for (var a, n, i, s, o, c, u, l = r.length(); l >= 64;) { for (n = e.h0, i = e.h1, s = e.h2, o = e.h3, c = e.h4, u = 0; u < 16; ++u) a = r.getInt32(), t[u] = a, a = (n << 5 | n >>> 27) + (o ^ i & (s ^ o)) + c + 1518500249 + a, c = o, o = s, s = (i << 30 | i >>> 2) >>> 0, i = n, n = a; for (; u < 20; ++u) a = (a = t[u - 3] ^ t[u - 8] ^ t[u - 14] ^ t[u - 16]) << 1 | a >>> 31, t[u] = a, a = (n << 5 | n >>> 27) + (o ^ i & (s ^ o)) + c + 1518500249 + a, c = o, o = s, s = (i << 30 | i >>> 2) >>> 0, i = n, n = a; for (; u < 32; ++u) a = (a = t[u - 3] ^ t[u - 8] ^ t[u - 14] ^ t[u - 16]) << 1 | a >>> 31, t[u] = a, a = (n << 5 | n >>> 27) + (i ^ s ^ o) + c + 1859775393 + a, c = o, o = s, s = (i << 30 | i >>> 2) >>> 0, i = n, n = a; for (; u < 40; ++u) a = (a = t[u - 6] ^ t[u - 16] ^ t[u - 28] ^ t[u - 32]) << 2 | a >>> 30, t[u] = a, a = (n << 5 | n >>> 27) + (i ^ s ^ o) + c + 1859775393 + a, c = o, o = s, s = (i << 30 | i >>> 2) >>> 0, i = n, n = a; for (; u < 60; ++u) a = (a = t[u - 6] ^ t[u - 16] ^ t[u - 28] ^ t[u - 32]) << 2 | a >>> 30, t[u] = a, a = (n << 5 | n >>> 27) + (i & s | o & (i ^ s)) + c + 2400959708 + a, c = o, o = s, s = (i << 30 | i >>> 2) >>> 0, i = n, n = a; for (; u < 80; ++u) a = (a = t[u - 6] ^ t[u - 16] ^ t[u - 28] ^ t[u - 32]) << 2 | a >>> 30, t[u] = a, a = (n << 5 | n >>> 27) + (i ^ s ^ o) + c + 3395469782 + a, c = o, o = s, s = (i << 30 | i >>> 2) >>> 0, i = n, n = a; e.h0 = e.h0 + n | 0, e.h1 = e.h1 + i | 0, e.h2 = e.h2 + s | 0, e.h3 = e.h3 + o | 0, e.h4 = e.h4 + c | 0, l -= 64; } } }, function (e, t, r) { var a = r(0); function n(e, t) { a.cipher.registerAlgorithm(e, function () { return new a.des.Algorithm(e, t); }); } r(13), r(19), r(1), e.exports = a.des = a.des || {}, a.des.startEncrypting = function (e, t, r, a) { var n = d({ key: e, output: r, decrypt: !1, mode: a || (null === t ? "ECB" : "CBC") }); return n.start(t), n; }, a.des.createEncryptionCipher = function (e, t) { return d({ key: e, output: null, decrypt: !1, mode: t }); }, a.des.startDecrypting = function (e, t, r, a) { var n = d({ key: e, output: r, decrypt: !0, mode: a || (null === t ? "ECB" : "CBC") }); return n.start(t), n; }, a.des.createDecryptionCipher = function (e, t) { return d({ key: e, output: null, decrypt: !0, mode: t }); }, a.des.Algorithm = function (e, t) { var r = this; r.name = e, r.mode = new t({ blockSize: 8, cipher: { encrypt: function (e, t) { return h(r._keys, e, t, !1); }, decrypt: function (e, t) { return h(r._keys, e, t, !0); } } }), r._init = !1; }, a.des.Algorithm.prototype.initialize = function (e) { if (!this._init) { var t = a.util.createBuffer(e.key); if (0 === this.name.indexOf("3DES") && 24 !== t.length()) throw new Error("Invalid Triple-DES key size: " + 8 * t.length()); this._keys = function (e) { for (var t, r = [0, 4, 536870912, 536870916, 65536, 65540, 536936448, 536936452, 512, 516, 536871424, 536871428, 66048, 66052, 536936960, 536936964], a = [0, 1, 1048576, 1048577, 67108864, 67108865, 68157440, 68157441, 256, 257, 1048832, 1048833, 67109120, 67109121, 68157696, 68157697], n = [0, 8, 2048, 2056, 16777216, 16777224, 16779264, 16779272, 0, 8, 2048, 2056, 16777216, 16777224, 16779264, 16779272], i = [0, 2097152, 134217728, 136314880, 8192, 2105344, 134225920, 136323072, 131072, 2228224, 134348800, 136445952, 139264, 2236416, 134356992, 136454144], s = [0, 262144, 16, 262160, 0, 262144, 16, 262160, 4096, 266240, 4112, 266256, 4096, 266240, 4112, 266256], o = [0, 1024, 32, 1056, 0, 1024, 32, 1056, 33554432, 33555456, 33554464, 33555488, 33554432, 33555456, 33554464, 33555488], c = [0, 268435456, 524288, 268959744, 2, 268435458, 524290, 268959746, 0, 268435456, 524288, 268959744, 2, 268435458, 524290, 268959746], u = [0, 65536, 2048, 67584, 536870912, 536936448, 536872960, 536938496, 131072, 196608, 133120, 198656, 537001984, 537067520, 537004032, 537069568], l = [0, 262144, 0, 262144, 2, 262146, 2, 262146, 33554432, 33816576, 33554432, 33816576, 33554434, 33816578, 33554434, 33816578], p = [0, 268435456, 8, 268435464, 0, 268435456, 8, 268435464, 1024, 268436480, 1032, 268436488, 1024, 268436480, 1032, 268436488], f = [0, 32, 0, 32, 1048576, 1048608, 1048576, 1048608, 8192, 8224, 8192, 8224, 1056768, 1056800, 1056768, 1056800], h = [0, 16777216, 512, 16777728, 2097152, 18874368, 2097664, 18874880, 67108864, 83886080, 67109376, 83886592, 69206016, 85983232, 69206528, 85983744], d = [0, 4096, 134217728, 134221824, 524288, 528384, 134742016, 134746112, 16, 4112, 134217744, 134221840, 524304, 528400, 134742032, 134746128], y = [0, 4, 256, 260, 0, 4, 256, 260, 1, 5, 257, 261, 1, 5, 257, 261], g = e.length() > 8 ? 3 : 1, m = [], v = [0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0], C = 0, E = 0; E < g; E++) { var S = e.getInt32(), T = e.getInt32(); S ^= (t = 252645135 & (S >>> 4 ^ T)) << 4, S ^= t = 65535 & ((T ^= t) >>> -16 ^ S), S ^= (t = 858993459 & (S >>> 2 ^ (T ^= t << -16))) << 2, S ^= t = 65535 & ((T ^= t) >>> -16 ^ S), S ^= (t = 1431655765 & (S >>> 1 ^ (T ^= t << -16))) << 1, S ^= t = 16711935 & ((T ^= t) >>> 8 ^ S), t = (S ^= (t = 1431655765 & (S >>> 1 ^ (T ^= t << 8))) << 1) << 8 | (T ^= t) >>> 20 & 240, S = T << 24 | T << 8 & 16711680 | T >>> 8 & 65280 | T >>> 24 & 240, T = t; for (var I = 0; I < v.length; ++I) { v[I] ? (S = S << 2 | S >>> 26, T = T << 2 | T >>> 26) : (S = S << 1 | S >>> 27, T = T << 1 | T >>> 27); var A = r[(S &= -15) >>> 28] | a[S >>> 24 & 15] | n[S >>> 20 & 15] | i[S >>> 16 & 15] | s[S >>> 12 & 15] | o[S >>> 8 & 15] | c[S >>> 4 & 15], B = u[(T &= -15) >>> 28] | l[T >>> 24 & 15] | p[T >>> 20 & 15] | f[T >>> 16 & 15] | h[T >>> 12 & 15] | d[T >>> 8 & 15] | y[T >>> 4 & 15]; t = 65535 & (B >>> 16 ^ A), m[C++] = A ^ t, m[C++] = B ^ t << 16; } } return m; }(t), this._init = !0; } }, n("DES-ECB", a.cipher.modes.ecb), n("DES-CBC", a.cipher.modes.cbc), n("DES-CFB", a.cipher.modes.cfb), n("DES-OFB", a.cipher.modes.ofb), n("DES-CTR", a.cipher.modes.ctr), n("3DES-ECB", a.cipher.modes.ecb), n("3DES-CBC", a.cipher.modes.cbc), n("3DES-CFB", a.cipher.modes.cfb), n("3DES-OFB", a.cipher.modes.ofb), n("3DES-CTR", a.cipher.modes.ctr); var i = [16843776, 0, 65536, 16843780, 16842756, 66564, 4, 65536, 1024, 16843776, 16843780, 1024, 16778244, 16842756, 16777216, 4, 1028, 16778240, 16778240, 66560, 66560, 16842752, 16842752, 16778244, 65540, 16777220, 16777220, 65540, 0, 1028, 66564, 16777216, 65536, 16843780, 4, 16842752, 16843776, 16777216, 16777216, 1024, 16842756, 65536, 66560, 16777220, 1024, 4, 16778244, 66564, 16843780, 65540, 16842752, 16778244, 16777220, 1028, 66564, 16843776, 1028, 16778240, 16778240, 0, 65540, 66560, 0, 16842756], s = [-2146402272, -2147450880, 32768, 1081376, 1048576, 32, -2146435040, -2147450848, -2147483616, -2146402272, -2146402304, -2147483648, -2147450880, 1048576, 32, -2146435040, 1081344, 1048608, -2147450848, 0, -2147483648, 32768, 1081376, -2146435072, 1048608, -2147483616, 0, 1081344, 32800, -2146402304, -2146435072, 32800, 0, 1081376, -2146435040, 1048576, -2147450848, -2146435072, -2146402304, 32768, -2146435072, -2147450880, 32, -2146402272, 1081376, 32, 32768, -2147483648, 32800, -2146402304, 1048576, -2147483616, 1048608, -2147450848, -2147483616, 1048608, 1081344, 0, -2147450880, 32800, -2147483648, -2146435040, -2146402272, 1081344], o = [520, 134349312, 0, 134348808, 134218240, 0, 131592, 134218240, 131080, 134217736, 134217736, 131072, 134349320, 131080, 134348800, 520, 134217728, 8, 134349312, 512, 131584, 134348800, 134348808, 131592, 134218248, 131584, 131072, 134218248, 8, 134349320, 512, 134217728, 134349312, 134217728, 131080, 520, 131072, 134349312, 134218240, 0, 512, 131080, 134349320, 134218240, 134217736, 512, 0, 134348808, 134218248, 131072, 134217728, 134349320, 8, 131592, 131584, 134217736, 134348800, 134218248, 520, 134348800, 131592, 8, 134348808, 131584], c = [8396801, 8321, 8321, 128, 8396928, 8388737, 8388609, 8193, 0, 8396800, 8396800, 8396929, 129, 0, 8388736, 8388609, 1, 8192, 8388608, 8396801, 128, 8388608, 8193, 8320, 8388737, 1, 8320, 8388736, 8192, 8396928, 8396929, 129, 8388736, 8388609, 8396800, 8396929, 129, 0, 0, 8396800, 8320, 8388736, 8388737, 1, 8396801, 8321, 8321, 128, 8396929, 129, 1, 8192, 8388609, 8193, 8396928, 8388737, 8193, 8320, 8388608, 8396801, 128, 8388608, 8192, 8396928], u = [256, 34078976, 34078720, 1107296512, 524288, 256, 1073741824, 34078720, 1074266368, 524288, 33554688, 1074266368, 1107296512, 1107820544, 524544, 1073741824, 33554432, 1074266112, 1074266112, 0, 1073742080, 1107820800, 1107820800, 33554688, 1107820544, 1073742080, 0, 1107296256, 34078976, 33554432, 1107296256, 524544, 524288, 1107296512, 256, 33554432, 1073741824, 34078720, 1107296512, 1074266368, 33554688, 1073741824, 1107820544, 34078976, 1074266368, 256, 33554432, 1107820544, 1107820800, 524544, 1107296256, 1107820800, 34078720, 0, 1074266112, 1107296256, 524544, 33554688, 1073742080, 524288, 0, 1074266112, 34078976, 1073742080], l = [536870928, 541065216, 16384, 541081616, 541065216, 16, 541081616, 4194304, 536887296, 4210704, 4194304, 536870928, 4194320, 536887296, 536870912, 16400, 0, 4194320, 536887312, 16384, 4210688, 536887312, 16, 541065232, 541065232, 0, 4210704, 541081600, 16400, 4210688, 541081600, 536870912, 536887296, 16, 541065232, 4210688, 541081616, 4194304, 16400, 536870928, 4194304, 536887296, 536870912, 16400, 536870928, 541081616, 4210688, 541065216, 4210704, 541081600, 0, 541065232, 16, 16384, 541065216, 4210704, 16384, 4194320, 536887312, 0, 541081600, 536870912, 4194320, 536887312], p = [2097152, 69206018, 67110914, 0, 2048, 67110914, 2099202, 69208064, 69208066, 2097152, 0, 67108866, 2, 67108864, 69206018, 2050, 67110912, 2099202, 2097154, 67110912, 67108866, 69206016, 69208064, 2097154, 69206016, 2048, 2050, 69208066, 2099200, 2, 67108864, 2099200, 67108864, 2099200, 2097152, 67110914, 67110914, 69206018, 69206018, 2, 2097154, 67108864, 67110912, 2097152, 69208064, 2050, 2099202, 69208064, 2050, 67108866, 69208066, 69206016, 2099200, 0, 2, 69208066, 0, 2099202, 69206016, 2048, 67108866, 67110912, 2048, 2097154], f = [268439616, 4096, 262144, 268701760, 268435456, 268439616, 64, 268435456, 262208, 268697600, 268701760, 266240, 268701696, 266304, 4096, 64, 268697600, 268435520, 268439552, 4160, 266240, 262208, 268697664, 268701696, 4160, 0, 0, 268697664, 268435520, 268439552, 266304, 262144, 266304, 262144, 268701696, 4096, 64, 268697664, 4096, 266304, 268439552, 64, 268435520, 268697600, 268697664, 268435456, 262144, 268439616, 0, 268701760, 262208, 268435520, 268697600, 268439552, 268439616, 0, 268701760, 266240, 266240, 4160, 4160, 262208, 268435456, 268701696]; function h(e, t, r, a) { var n, h, d = 32 === e.length ? 3 : 9; n = 3 === d ? a ? [30, -2, -2] : [0, 32, 2] : a ? [94, 62, -2, 32, 64, 2, 30, -2, -2] : [0, 32, 2, 62, 30, -2, 64, 96, 2]; var y = t[0], g = t[1]; y ^= (h = 252645135 & (y >>> 4 ^ g)) << 4, y ^= (h = 65535 & (y >>> 16 ^ (g ^= h))) << 16, y ^= h = 858993459 & ((g ^= h) >>> 2 ^ y), y ^= h = 16711935 & ((g ^= h << 2) >>> 8 ^ y), y = (y ^= (h = 1431655765 & (y >>> 1 ^ (g ^= h << 8))) << 1) << 1 | y >>> 31, g = (g ^= h) << 1 | g >>> 31; for (var m = 0; m < d; m += 3) { for (var v = n[m + 1], C = n[m + 2], E = n[m]; E != v; E += C) { var S = g ^ e[E], T = (g >>> 4 | g << 28) ^ e[E + 1]; h = y, y = g, g = h ^ (s[S >>> 24 & 63] | c[S >>> 16 & 63] | l[S >>> 8 & 63] | f[63 & S] | i[T >>> 24 & 63] | o[T >>> 16 & 63] | u[T >>> 8 & 63] | p[63 & T]); } h = y, y = g, g = h; } g = g >>> 1 | g << 31, g ^= h = 1431655765 & ((y = y >>> 1 | y << 31) >>> 1 ^ g), g ^= (h = 16711935 & (g >>> 8 ^ (y ^= h << 1))) << 8, g ^= (h = 858993459 & (g >>> 2 ^ (y ^= h))) << 2, g ^= h = 65535 & ((y ^= h) >>> 16 ^ g), g ^= h = 252645135 & ((y ^= h << 16) >>> 4 ^ g), y ^= h << 4, r[0] = y, r[1] = g; } function d(e) { var t, r = "DES-" + ((e = e || {}).mode || "CBC").toUpperCase(), n = (t = e.decrypt ? a.cipher.createDecipher(r, e.key) : a.cipher.createCipher(r, e.key)).start; return t.start = function (e, r) { var i = null; r instanceof a.util.ByteBuffer && (i = r, r = {}), (r = r || {}).output = i, r.iv = e, n.call(t, r); }, t; } }, function (e, t, r) { var a = r(0); if (r(3), r(12), r(6), r(26), r(27), r(2), r(1), void 0 === n) var n = a.jsbn.BigInteger; var i = a.util.isNodejs ? r(16) : null, s = a.asn1, o = a.util; a.pki = a.pki || {}, e.exports = a.pki.rsa = a.rsa = a.rsa || {}; var c = a.pki, u = [6, 4, 2, 4, 2, 4, 6, 2], l = { name: "PrivateKeyInfo", tagClass: s.Class.UNIVERSAL, type: s.Type.SEQUENCE, constructed: !0, value: [{ name: "PrivateKeyInfo.version", tagClass: s.Class.UNIVERSAL, type: s.Type.INTEGER, constructed: !1, capture: "privateKeyVersion" }, { name: "PrivateKeyInfo.privateKeyAlgorithm", tagClass: s.Class.UNIVERSAL, type: s.Type.SEQUENCE, constructed: !0, value: [{ name: "AlgorithmIdentifier.algorithm", tagClass: s.Class.UNIVERSAL, type: s.Type.OID, constructed: !1, capture: "privateKeyOid" }] }, { name: "PrivateKeyInfo", tagClass: s.Class.UNIVERSAL, type: s.Type.OCTETSTRING, constructed: !1, capture: "privateKey" }] }, p = { name: "RSAPrivateKey", tagClass: s.Class.UNIVERSAL, type: s.Type.SEQUENCE, constructed: !0, value: [{ name: "RSAPrivateKey.version", tagClass: s.Class.UNIVERSAL, type: s.Type.INTEGER, constructed: !1, capture: "privateKeyVersion" }, { name: "RSAPrivateKey.modulus", tagClass: s.Class.UNIVERSAL, type: s.Type.INTEGER, constructed: !1, capture: "privateKeyModulus" }, { name: "RSAPrivateKey.publicExponent", tagClass: s.Class.UNIVERSAL, type: s.Type.INTEGER, constructed: !1, capture: "privateKeyPublicExponent" }, { name: "RSAPrivateKey.privateExponent", tagClass: s.Class.UNIVERSAL, type: s.Type.INTEGER, constructed: !1, capture: "privateKeyPrivateExponent" }, { name: "RSAPrivateKey.prime1", tagClass: s.Class.UNIVERSAL, type: s.Type.INTEGER, constructed: !1, capture: "privateKeyPrime1" }, { name: "RSAPrivateKey.prime2", tagClass: s.Class.UNIVERSAL, type: s.Type.INTEGER, constructed: !1, capture: "privateKeyPrime2" }, { name: "RSAPrivateKey.exponent1", tagClass: s.Class.UNIVERSAL, type: s.Type.INTEGER, constructed: !1, capture: "privateKeyExponent1" }, { name: "RSAPrivateKey.exponent2", tagClass: s.Class.UNIVERSAL, type: s.Type.INTEGER, constructed: !1, capture: "privateKeyExponent2" }, { name: "RSAPrivateKey.coefficient", tagClass: s.Class.UNIVERSAL, type: s.Type.INTEGER, constructed: !1, capture: "privateKeyCoefficient" }] }, f = { name: "RSAPublicKey", tagClass: s.Class.UNIVERSAL, type: s.Type.SEQUENCE, constructed: !0, value: [{ name: "RSAPublicKey.modulus", tagClass: s.Class.UNIVERSAL, type: s.Type.INTEGER, constructed: !1, capture: "publicKeyModulus" }, { name: "RSAPublicKey.exponent", tagClass: s.Class.UNIVERSAL, type: s.Type.INTEGER, constructed: !1, capture: "publicKeyExponent" }] }, h = a.pki.rsa.publicKeyValidator = { name: "SubjectPublicKeyInfo", tagClass: s.Class.UNIVERSAL, type: s.Type.SEQUENCE, constructed: !0, captureAsn1: "subjectPublicKeyInfo", value: [{ name: "SubjectPublicKeyInfo.AlgorithmIdentifier", tagClass: s.Class.UNIVERSAL, type: s.Type.SEQUENCE, constructed: !0, value: [{ name: "AlgorithmIdentifier.algorithm", tagClass: s.Class.UNIVERSAL, type: s.Type.OID, constructed: !1, capture: "publicKeyOid" }] }, { name: "SubjectPublicKeyInfo.subjectPublicKey", tagClass: s.Class.UNIVERSAL, type: s.Type.BITSTRING, constructed: !1, value: [{ name: "SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey", tagClass: s.Class.UNIVERSAL, type: s.Type.SEQUENCE, constructed: !0, optional: !0, captureAsn1: "rsaPublicKey" }] }] }, d = function (e) { var t; if (!(e.algorithm in c.oids)) { var r = new Error("Unknown message digest algorithm."); throw r.algorithm = e.algorithm, r; } t = c.oids[e.algorithm]; var a = s.oidToDer(t).getBytes(), n = s.create(s.Class.UNIVERSAL, s.Type.SEQUENCE, !0, []), i = s.create(s.Class.UNIVERSAL, s.Type.SEQUENCE, !0, []); i.value.push(s.create(s.Class.UNIVERSAL, s.Type.OID, !1, a)), i.value.push(s.create(s.Class.UNIVERSAL, s.Type.NULL, !1, "")); var o = s.create(s.Class.UNIVERSAL, s.Type.OCTETSTRING, !1, e.digest().getBytes()); return n.value.push(i), n.value.push(o), s.toDer(n).getBytes(); }, y = function (e, t, r) { if (r) return e.modPow(t.e, t.n); if (!t.p || !t.q) return e.modPow(t.d, t.n); var i; t.dP || (t.dP = t.d.mod(t.p.subtract(n.ONE))), t.dQ || (t.dQ = t.d.mod(t.q.subtract(n.ONE))), t.qInv || (t.qInv = t.q.modInverse(t.p)); do { i = new n(a.util.bytesToHex(a.random.getBytes(t.n.bitLength() / 8)), 16); } while (i.compareTo(t.n) >= 0 || !i.gcd(t.n).equals(n.ONE)); for (var s = (e = e.multiply(i.modPow(t.e, t.n)).mod(t.n)).mod(t.p).modPow(t.dP, t.p), o = e.mod(t.q).modPow(t.dQ, t.q); s.compareTo(o) < 0;) s = s.add(t.p); var c = s.subtract(o).multiply(t.qInv).mod(t.p).multiply(t.q).add(o); return c = c.multiply(i.modInverse(t.n)).mod(t.n); }; function g(e, t, r) { var n = a.util.createBuffer(), i = Math.ceil(t.n.bitLength() / 8); if (e.length > i - 11) { var s = new Error("Message is too long for PKCS#1 v1.5 padding."); throw s.length = e.length, s.max = i - 11, s; } n.putByte(0), n.putByte(r); var o, c = i - 3 - e.length; if (0 === r || 1 === r) { o = 0 === r ? 0 : 255; for (var u = 0; u < c; ++u) n.putByte(o); } else for (; c > 0;) { var l = 0, p = a.random.getBytes(c); for (u = 0; u < c; ++u) 0 === (o = p.charCodeAt(u)) ? ++l : n.putByte(o); c = l; } return n.putByte(0), n.putBytes(e), n; } function m(e, t, r, n) { var i = Math.ceil(t.n.bitLength() / 8), s = a.util.createBuffer(e), o = s.getByte(), c = s.getByte(); if (0 !== o || r && 0 !== c && 1 !== c || !r && 2 != c || r && 0 === c && void 0 === n) throw new Error("Encryption block is invalid."); var u = 0; if (0 === c) { u = i - 3 - n; for (var l = 0; l < u; ++l) if (0 !== s.getByte()) throw new Error("Encryption block is invalid."); } else if (1 === c) for (u = 0; s.length() > 1;) { if (255 !== s.getByte()) { --s.read; break; } ++u; } else if (2 === c) for (u = 0; s.length() > 1;) { if (0 === s.getByte()) { --s.read; break; } ++u; } if (0 !== s.getByte() || u !== i - 3 - s.length()) throw new Error("Encryption block is invalid."); return s.getBytes(); } function v(e, t, r) { "function" == typeof t && (r = t, t = {}); var i = { algorithm: { name: (t = t || {}).algorithm || "PRIMEINC", options: { workers: t.workers || 2, workLoad: t.workLoad || 100, workerScript: t.workerScript } } }; function s() { o(e.pBits, function (t, a) { return t ? r(t) : (e.p = a, null !== e.q ? u(t, e.q) : void o(e.qBits, u)); }); } function o(e, t) { a.prime.generateProbablePrime(e, i, t); } function u(t, a) { if (t) return r(t); if (e.q = a, e.p.compareTo(e.q) < 0) { var i = e.p; e.p = e.q, e.q = i; } if (0 !== e.p.subtract(n.ONE).gcd(e.e).compareTo(n.ONE)) return e.p = null, void s(); if (0 !== e.q.subtract(n.ONE).gcd(e.e).compareTo(n.ONE)) return e.q = null, void o(e.qBits, u); if (e.p1 = e.p.subtract(n.ONE), e.q1 = e.q.subtract(n.ONE), e.phi = e.p1.multiply(e.q1), 0 !== e.phi.gcd(e.e).compareTo(n.ONE)) return e.p = e.q = null, void s(); if (e.n = e.p.multiply(e.q), e.n.bitLength() !== e.bits) return e.q = null, void o(e.qBits, u); var l = e.e.modInverse(e.phi); e.keys = { privateKey: c.rsa.setPrivateKey(e.n, e.e, l, e.p, e.q, l.mod(e.p1), l.mod(e.q1), e.q.modInverse(e.p)), publicKey: c.rsa.setPublicKey(e.n, e.e) }, r(null, e.keys); } "prng" in t && (i.prng = t.prng), s(); } function C(e) { var t = e.toString(16); t[0] >= "8" && (t = "00" + t); var r = a.util.hexToBytes(t); return r.length > 1 && (0 === r.charCodeAt(0) && 0 == (128 & r.charCodeAt(1)) || 255 === r.charCodeAt(0) && 128 == (128 & r.charCodeAt(1))) ? r.substr(1) : r; } function E(e) { return e <= 100 ? 27 : e <= 150 ? 18 : e <= 200 ? 15 : e <= 250 ? 12 : e <= 300 ? 9 : e <= 350 ? 8 : e <= 400 ? 7 : e <= 500 ? 6 : e <= 600 ? 5 : e <= 800 ? 4 : e <= 1250 ? 3 : 2; } function S(e) { return a.util.isNodejs && "function" == typeof i[e]; } function T(e) { return void 0 !== o.globalScope && "object" == typeof o.globalScope.crypto && "object" == typeof o.globalScope.crypto.subtle && "function" == typeof o.globalScope.crypto.subtle[e]; } function I(e) { return void 0 !== o.globalScope && "object" == typeof o.globalScope.msCrypto && "object" == typeof o.globalScope.msCrypto.subtle && "function" == typeof o.globalScope.msCrypto.subtle[e]; } function A(e) { for (var t = a.util.hexToBytes(e.toString(16)), r = new Uint8Array(t.length), n = 0; n < t.length; ++n) r[n] = t.charCodeAt(n); return r; } c.rsa.encrypt = function (e, t, r) { var i, s = r, o = Math.ceil(t.n.bitLength() / 8); !1 !== r && !0 !== r ? (s = 2 === r, i = g(e, t, r)) : (i = a.util.createBuffer()).putBytes(e); for (var c = new n(i.toHex(), 16), u = y(c, t, s).toString(16), l = a.util.createBuffer(), p = o - Math.ceil(u.length / 2); p > 0;) l.putByte(0), --p; return l.putBytes(a.util.hexToBytes(u)), l.getBytes(); }, c.rsa.decrypt = function (e, t, r, i) { var s = Math.ceil(t.n.bitLength() / 8); if (e.length !== s) { var o = new Error("Encrypted message length is invalid."); throw o.length = e.length, o.expected = s, o; } var c = new n(a.util.createBuffer(e).toHex(), 16); if (c.compareTo(t.n) >= 0) throw new Error("Encrypted message is invalid."); for (var u = y(c, t, r).toString(16), l = a.util.createBuffer(), p = s - Math.ceil(u.length / 2); p > 0;) l.putByte(0), --p; return l.putBytes(a.util.hexToBytes(u)), !1 !== i ? m(l.getBytes(), t, r) : l.getBytes(); }, c.rsa.createKeyPairGenerationState = function (e, t, r) { "string" == typeof e && (e = parseInt(e, 10)), e = e || 2048; var i, s = (r = r || {}).prng || a.random, o = { nextBytes: function (e) { for (var t = s.getBytesSync(e.length), r = 0; r < e.length; ++r) e[r] = t.charCodeAt(r); } }, c = r.algorithm || "PRIMEINC"; if ("PRIMEINC" !== c) throw new Error("Invalid key generation algorithm: " + c); return (i = { algorithm: c, state: 0, bits: e, rng: o, eInt: t || 65537, e: new n(null), p: null, q: null, qBits: e >> 1, pBits: e - (e >> 1), pqState: 0, num: null, keys: null }).e.fromInt(i.eInt), i; }, c.rsa.stepKeyPairGenerationState = function (e, t) { "algorithm" in e || (e.algorithm = "PRIMEINC"); var r = new n(null); r.fromInt(30); for (var a, i = 0, s = function (e, t) { return e | t; }, o = +new Date(), l = 0; null === e.keys && (t <= 0 || l < t);) { if (0 === e.state) { var p = null === e.p ? e.pBits : e.qBits, f = p - 1; 0 === e.pqState ? (e.num = new n(p, e.rng), e.num.testBit(f) || e.num.bitwiseTo(n.ONE.shiftLeft(f), s, e.num), e.num.dAddOffset(31 - e.num.mod(r).byteValue(), 0), i = 0, ++e.pqState) : 1 === e.pqState ? e.num.bitLength() > p ? e.pqState = 0 : e.num.isProbablePrime(E(e.num.bitLength())) ? ++e.pqState : e.num.dAddOffset(u[i++ % 8], 0) : 2 === e.pqState ? e.pqState = 0 === e.num.subtract(n.ONE).gcd(e.e).compareTo(n.ONE) ? 3 : 0 : 3 === e.pqState && (e.pqState = 0, null === e.p ? e.p = e.num : e.q = e.num, null !== e.p && null !== e.q && ++e.state, e.num = null); } else if (1 === e.state) e.p.compareTo(e.q) < 0 && (e.num = e.p, e.p = e.q, e.q = e.num), ++e.state;else if (2 === e.state) e.p1 = e.p.subtract(n.ONE), e.q1 = e.q.subtract(n.ONE), e.phi = e.p1.multiply(e.q1), ++e.state;else if (3 === e.state) 0 === e.phi.gcd(e.e).compareTo(n.ONE) ? ++e.state : (e.p = null, e.q = null, e.state = 0);else if (4 === e.state) e.n = e.p.multiply(e.q), e.n.bitLength() === e.bits ? ++e.state : (e.q = null, e.state = 0);else if (5 === e.state) { var h = e.e.modInverse(e.phi); e.keys = { privateKey: c.rsa.setPrivateKey(e.n, e.e, h, e.p, e.q, h.mod(e.p1), h.mod(e.q1), e.q.modInverse(e.p)), publicKey: c.rsa.setPublicKey(e.n, e.e) }; } l += (a = +new Date()) - o, o = a; } return null !== e.keys; }, c.rsa.generateKeyPair = function (e, t, r, n) { if (1 === arguments.length ? "object" == typeof e ? (r = e, e = void 0) : "function" == typeof e && (n = e, e = void 0) : 2 === arguments.length ? "number" == typeof e ? "function" == typeof t ? (n = t, t = void 0) : "number" != typeof t && (r = t, t = void 0) : (r = e, n = t, e = void 0, t = void 0) : 3 === arguments.length && ("number" == typeof t ? "function" == typeof r && (n = r, r = void 0) : (n = r, r = t, t = void 0)), r = r || {}, void 0 === e && (e = r.bits || 2048), void 0 === t && (t = r.e || 65537), !a.options.usePureJavaScript && !r.prng && e >= 256 && e <= 16384 && (65537 === t || 3 === t)) if (n) { if (S("generateKeyPair")) return i.generateKeyPair("rsa", { modulusLength: e, publicExponent: t, publicKeyEncoding: { type: "spki", format: "pem" }, privateKeyEncoding: { type: "pkcs8", format: "pem" } }, function (e, t, r) { if (e) return n(e); n(null, { privateKey: c.privateKeyFromPem(r), publicKey: c.publicKeyFromPem(t) }); }); if (T("generateKey") && T("exportKey")) return o.globalScope.crypto.subtle.generateKey({ name: "RSASSA-PKCS1-v1_5", modulusLength: e, publicExponent: A(t), hash: { name: "SHA-256" } }, !0, ["sign", "verify"]).then(function (e) { return o.globalScope.crypto.subtle.exportKey("pkcs8", e.privateKey); }).then(void 0, function (e) { n(e); }).then(function (e) { if (e) { var t = c.privateKeyFromAsn1(s.fromDer(a.util.createBuffer(e))); n(null, { privateKey: t, publicKey: c.setRsaPublicKey(t.n, t.e) }); } }); if (I("generateKey") && I("exportKey")) { var u = o.globalScope.msCrypto.subtle.generateKey({ name: "RSASSA-PKCS1-v1_5", modulusLength: e, publicExponent: A(t), hash: { name: "SHA-256" } }, !0, ["sign", "verify"]); return u.oncomplete = function (e) { var t = e.target.result, r = o.globalScope.msCrypto.subtle.exportKey("pkcs8", t.privateKey); r.oncomplete = function (e) { var t = e.target.result, r = c.privateKeyFromAsn1(s.fromDer(a.util.createBuffer(t))); n(null, { privateKey: r, publicKey: c.setRsaPublicKey(r.n, r.e) }); }, r.onerror = function (e) { n(e); }; }, void (u.onerror = function (e) { n(e); }); } } else if (S("generateKeyPairSync")) { var l = i.generateKeyPairSync("rsa", { modulusLength: e, publicExponent: t, publicKeyEncoding: { type: "spki", format: "pem" }, privateKeyEncoding: { type: "pkcs8", format: "pem" } }); return { privateKey: c.privateKeyFromPem(l.privateKey), publicKey: c.publicKeyFromPem(l.publicKey) }; } var p = c.rsa.createKeyPairGenerationState(e, t, r); if (!n) return c.rsa.stepKeyPairGenerationState(p, 0), p.keys; v(p, r, n); }, c.setRsaPublicKey = c.rsa.setPublicKey = function (e, t) { var r = { n: e, e: t, encrypt: function (e, t, n) { if ("string" == typeof t ? t = t.toUpperCase() : void 0 === t && (t = "RSAES-PKCS1-V1_5"), "RSAES-PKCS1-V1_5" === t) t = { encode: function (e, t, r) { return g(e, t, 2).getBytes(); } };else if ("RSA-OAEP" === t || "RSAES-OAEP" === t) t = { encode: function (e, t) { return a.pkcs1.encode_rsa_oaep(t, e, n); } };else if (-1 !== ["RAW", "NONE", "NULL", null].indexOf(t)) t = { encode: function (e) { return e; } };else if ("string" == typeof t) throw new Error('Unsupported encryption scheme: "' + t + '".'); var i = t.encode(e, r, !0); return c.rsa.encrypt(i, r, !0); }, verify: function (e, t, a) { "string" == typeof a ? a = a.toUpperCase() : void 0 === a && (a = "RSASSA-PKCS1-V1_5"), "RSASSA-PKCS1-V1_5" === a ? a = { verify: function (e, t) { return t = m(t, r, !0), e === s.fromDer(t).value[1].value; } } : "NONE" !== a && "NULL" !== a && null !== a || (a = { verify: function (e, t) { return e === (t = m(t, r, !0)); } }); var n = c.rsa.decrypt(t, r, !0, !1); return a.verify(e, n, r.n.bitLength()); } }; return r; }, c.setRsaPrivateKey = c.rsa.setPrivateKey = function (e, t, r, n, i, s, o, u) { var l = { n: e, e: t, d: r, p: n, q: i, dP: s, dQ: o, qInv: u, decrypt: function (e, t, r) { "string" == typeof t ? t = t.toUpperCase() : void 0 === t && (t = "RSAES-PKCS1-V1_5"); var n = c.rsa.decrypt(e, l, !1, !1); if ("RSAES-PKCS1-V1_5" === t) t = { decode: m };else if ("RSA-OAEP" === t || "RSAES-OAEP" === t) t = { decode: function (e, t) { return a.pkcs1.decode_rsa_oaep(t, e, r); } };else { if (-1 === ["RAW", "NONE", "NULL", null].indexOf(t)) throw new Error('Unsupported encryption scheme: "' + t + '".'); t = { decode: function (e) { return e; } }; } return t.decode(n, l, !1); }, sign: function (e, t) { var r = !1; "string" == typeof t && (t = t.toUpperCase()), void 0 === t || "RSASSA-PKCS1-V1_5" === t ? (t = { encode: d }, r = 1) : "NONE" !== t && "NULL" !== t && null !== t || (t = { encode: function () { return e; } }, r = 1); var a = t.encode(e, l.n.bitLength()); return c.rsa.encrypt(a, l, r); } }; return l; }, c.wrapRsaPrivateKey = function (e) { return s.create(s.Class.UNIVERSAL, s.Type.SEQUENCE, !0, [s.create(s.Class.UNIVERSAL, s.Type.INTEGER, !1, s.integerToDer(0).getBytes()), s.create(s.Class.UNIVERSAL, s.Type.SEQUENCE, !0, [s.create(s.Class.UNIVERSAL, s.Type.OID, !1, s.oidToDer(c.oids.rsaEncryption).getBytes()), s.create(s.Class.UNIVERSAL, s.Type.NULL, !1, "")]), s.create(s.Class.UNIVERSAL, s.Type.OCTETSTRING, !1, s.toDer(e).getBytes())]); }, c.privateKeyFromAsn1 = function (e) { var t, r, i, o, u, f, h, d, y = {}, g = []; if (s.validate(e, l, y, g) && (e = s.fromDer(a.util.createBuffer(y.privateKey))), y = {}, g = [], !s.validate(e, p, y, g)) { var m = new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey."); throw m.errors = g, m; } return t = a.util.createBuffer(y.privateKeyModulus).toHex(), r = a.util.createBuffer(y.privateKeyPublicExponent).toHex(), i = a.util.createBuffer(y.privateKeyPrivateExponent).toHex(), o = a.util.createBuffer(y.privateKeyPrime1).toHex(), u = a.util.createBuffer(y.privateKeyPrime2).toHex(), f = a.util.createBuffer(y.privateKeyExponent1).toHex(), h = a.util.createBuffer(y.privateKeyExponent2).toHex(), d = a.util.createBuffer(y.privateKeyCoefficient).toHex(), c.setRsaPrivateKey(new n(t, 16), new n(r, 16), new n(i, 16), new n(o, 16), new n(u, 16), new n(f, 16), new n(h, 16), new n(d, 16)); }, c.privateKeyToAsn1 = c.privateKeyToRSAPrivateKey = function (e) { return s.create(s.Class.UNIVERSAL, s.Type.SEQUENCE, !0, [s.create(s.Class.UNIVERSAL, s.Type.INTEGER, !1, s.integerToDer(0).getBytes()), s.create(s.Class.UNIVERSAL, s.Type.INTEGER, !1, C(e.n)), s.create(s.Class.UNIVERSAL, s.Type.INTEGER, !1, C(e.e)), s.create(s.Class.UNIVERSAL, s.Type.INTEGER, !1, C(e.d)), s.create(s.Class.UNIVERSAL, s.Type.INTEGER, !1, C(e.p)), s.create(s.Class.UNIVERSAL, s.Type.INTEGER, !1, C(e.q)), s.create(s.Class.UNIVERSAL, s.Type.INTEGER, !1, C(e.dP)), s.create(s.Class.UNIVERSAL, s.Type.INTEGER, !1, C(e.dQ)), s.create(s.Class.UNIVERSAL, s.Type.INTEGER, !1, C(e.qInv))]); }, c.publicKeyFromAsn1 = function (e) { var t = {}, r = []; if (s.validate(e, h, t, r)) { var i, o = s.derToOid(t.publicKeyOid); if (o !== c.oids.rsaEncryption) throw (i = new Error("Cannot read public key. Unknown OID.")).oid = o, i; e = t.rsaPublicKey; } if (r = [], !s.validate(e, f, t, r)) throw (i = new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.")).errors = r, i; var u = a.util.createBuffer(t.publicKeyModulus).toHex(), l = a.util.createBuffer(t.publicKeyExponent).toHex(); return c.setRsaPublicKey(new n(u, 16), new n(l, 16)); }, c.publicKeyToAsn1 = c.publicKeyToSubjectPublicKeyInfo = function (e) { return s.create(s.Class.UNIVERSAL, s.Type.SEQUENCE, !0, [s.create(s.Class.UNIVERSAL, s.Type.SEQUENCE, !0, [s.create(s.Class.UNIVERSAL, s.Type.OID, !1, s.oidToDer(c.oids.rsaEncryption).getBytes()), s.create(s.Class.UNIVERSAL, s.Type.NULL, !1, "")]), s.create(s.Class.UNIVERSAL, s.Type.BITSTRING, !1, [c.publicKeyToRSAPublicKey(e)])]); }, c.publicKeyToRSAPublicKey = function (e) { return s.create(s.Class.UNIVERSAL, s.Type.SEQUENCE, !0, [s.create(s.Class.UNIVERSAL, s.Type.INTEGER, !1, C(e.n)), s.create(s.Class.UNIVERSAL, s.Type.INTEGER, !1, C(e.e))]); }; }, function (e, t, r) { var a, n = r(0); e.exports = n.jsbn = n.jsbn || {}; function i(e, t, r) { this.data = [], null != e && ("number" == typeof e ? this.fromNumber(e, t, r) : null == t && "string" != typeof e ? this.fromString(e, 256) : this.fromString(e, t)); } function s() { return new i(null); } function o(e, t, r, a, n, i) { for (var s = 16383 & t, o = t >> 14; --i >= 0;) { var c = 16383 & this.data[e], u = this.data[e++] >> 14, l = o * c + u * s; n = ((c = s * c + ((16383 & l) << 14) + r.data[a] + n) >> 28) + (l >> 14) + o * u, r.data[a++] = 268435455 & c; } return n; } n.jsbn.BigInteger = i, "undefined" == typeof navigator ? (i.prototype.am = o, a = 28) : "Microsoft Internet Explorer" == navigator.appName ? (i.prototype.am = function (e, t, r, a, n, i) { for (var s = 32767 & t, o = t >> 15; --i >= 0;) { var c = 32767 & this.data[e], u = this.data[e++] >> 15, l = o * c + u * s; n = ((c = s * c + ((32767 & l) << 15) + r.data[a] + (1073741823 & n)) >>> 30) + (l >>> 15) + o * u + (n >>> 30), r.data[a++] = 1073741823 & c; } return n; }, a = 30) : "Netscape" != navigator.appName ? (i.prototype.am = function (e, t, r, a, n, i) { for (; --i >= 0;) { var s = t * this.data[e++] + r.data[a] + n; n = Math.floor(s / 67108864), r.data[a++] = 67108863 & s; } return n; }, a = 26) : (i.prototype.am = o, a = 28), i.prototype.DB = a, i.prototype.DM = (1 << a) - 1, i.prototype.DV = 1 << a; i.prototype.FV = Math.pow(2, 52), i.prototype.F1 = 52 - a, i.prototype.F2 = 2 * a - 52; var c, u, l = new Array(); for (c = "0".charCodeAt(0), u = 0; u <= 9; ++u) l[c++] = u; for (c = "a".charCodeAt(0), u = 10; u < 36; ++u) l[c++] = u; for (c = "A".charCodeAt(0), u = 10; u < 36; ++u) l[c++] = u; function p(e) { return "0123456789abcdefghijklmnopqrstuvwxyz".charAt(e); } function f(e, t) { var r = l[e.charCodeAt(t)]; return null == r ? -1 : r; } function h(e) { var t = s(); return t.fromInt(e), t; } function d(e) { var t, r = 1; return 0 != (t = e >>> 16) && (e = t, r += 16), 0 != (t = e >> 8) && (e = t, r += 8), 0 != (t = e >> 4) && (e = t, r += 4), 0 != (t = e >> 2) && (e = t, r += 2), 0 != (t = e >> 1) && (e = t, r += 1), r; } function y(e) { this.m = e; } function g(e) { this.m = e, this.mp = e.invDigit(), this.mpl = 32767 & this.mp, this.mph = this.mp >> 15, this.um = (1 << e.DB - 15) - 1, this.mt2 = 2 * e.t; } function m(e, t) { return e & t; } function v(e, t) { return e | t; } function C(e, t) { return e ^ t; } function E(e, t) { return e & ~t; } function S(e) { if (0 == e) return -1; var t = 0; return 0 == (65535 & e) && (e >>= 16, t += 16), 0 == (255 & e) && (e >>= 8, t += 8), 0 == (15 & e) && (e >>= 4, t += 4), 0 == (3 & e) && (e >>= 2, t += 2), 0 == (1 & e) && ++t, t; } function T(e) { for (var t = 0; 0 != e;) e &= e - 1, ++t; return t; } function I() {} function A(e) { return e; } function B(e) { this.r2 = s(), this.q3 = s(), i.ONE.dlShiftTo(2 * e.t, this.r2), this.mu = this.r2.divide(e), this.m = e; } y.prototype.convert = function (e) { return e.s < 0 || e.compareTo(this.m) >= 0 ? e.mod(this.m) : e; }, y.prototype.revert = function (e) { return e; }, y.prototype.reduce = function (e) { e.divRemTo(this.m, null, e); }, y.prototype.mulTo = function (e, t, r) { e.multiplyTo(t, r), this.reduce(r); }, y.prototype.sqrTo = function (e, t) { e.squareTo(t), this.reduce(t); }, g.prototype.convert = function (e) { var t = s(); return e.abs().dlShiftTo(this.m.t, t), t.divRemTo(this.m, null, t), e.s < 0 && t.compareTo(i.ZERO) > 0 && this.m.subTo(t, t), t; }, g.prototype.revert = function (e) { var t = s(); return e.copyTo(t), this.reduce(t), t; }, g.prototype.reduce = function (e) { for (; e.t <= this.mt2;) e.data[e.t++] = 0; for (var t = 0; t < this.m.t; ++t) { var r = 32767 & e.data[t], a = r * this.mpl + ((r * this.mph + (e.data[t] >> 15) * this.mpl & this.um) << 15) & e.DM; for (r = t + this.m.t, e.data[r] += this.m.am(0, a, e, t, 0, this.m.t); e.data[r] >= e.DV;) e.data[r] -= e.DV, e.data[++r]++; } e.clamp(), e.drShiftTo(this.m.t, e), e.compareTo(this.m) >= 0 && e.subTo(this.m, e); }, g.prototype.mulTo = function (e, t, r) { e.multiplyTo(t, r), this.reduce(r); }, g.prototype.sqrTo = function (e, t) { e.squareTo(t), this.reduce(t); }, i.prototype.copyTo = function (e) { for (var t = this.t - 1; t >= 0; --t) e.data[t] = this.data[t]; e.t = this.t, e.s = this.s; }, i.prototype.fromInt = function (e) { this.t = 1, this.s = e < 0 ? -1 : 0, e > 0 ? this.data[0] = e : e < -1 ? this.data[0] = e + this.DV : this.t = 0; }, i.prototype.fromString = function (e, t) { var r; if (16 == t) r = 4;else if (8 == t) r = 3;else if (256 == t) r = 8;else if (2 == t) r = 1;else if (32 == t) r = 5;else { if (4 != t) return void this.fromRadix(e, t); r = 2; } this.t = 0, this.s = 0; for (var a = e.length, n = !1, s = 0; --a >= 0;) { var o = 8 == r ? 255 & e[a] : f(e, a); o < 0 ? "-" == e.charAt(a) && (n = !0) : (n = !1, 0 == s ? this.data[this.t++] = o : s + r > this.DB ? (this.data[this.t - 1] |= (o & (1 << this.DB - s) - 1) << s, this.data[this.t++] = o >> this.DB - s) : this.data[this.t - 1] |= o << s, (s += r) >= this.DB && (s -= this.DB)); } 8 == r && 0 != (128 & e[0]) && (this.s = -1, s > 0 && (this.data[this.t - 1] |= (1 << this.DB - s) - 1 << s)), this.clamp(), n && i.ZERO.subTo(this, this); }, i.prototype.clamp = function () { for (var e = this.s & this.DM; this.t > 0 && this.data[this.t - 1] == e;) --this.t; }, i.prototype.dlShiftTo = function (e, t) { var r; for (r = this.t - 1; r >= 0; --r) t.data[r + e] = this.data[r]; for (r = e - 1; r >= 0; --r) t.data[r] = 0; t.t = this.t + e, t.s = this.s; }, i.prototype.drShiftTo = function (e, t) { for (var r = e; r < this.t; ++r) t.data[r - e] = this.data[r]; t.t = Math.max(this.t - e, 0), t.s = this.s; }, i.prototype.lShiftTo = function (e, t) { var r, a = e % this.DB, n = this.DB - a, i = (1 << n) - 1, s = Math.floor(e / this.DB), o = this.s << a & this.DM; for (r = this.t - 1; r >= 0; --r) t.data[r + s + 1] = this.data[r] >> n | o, o = (this.data[r] & i) << a; for (r = s - 1; r >= 0; --r) t.data[r] = 0; t.data[s] = o, t.t = this.t + s + 1, t.s = this.s, t.clamp(); }, i.prototype.rShiftTo = function (e, t) { t.s = this.s; var r = Math.floor(e / this.DB); if (r >= this.t) t.t = 0;else { var a = e % this.DB, n = this.DB - a, i = (1 << a) - 1; t.data[0] = this.data[r] >> a; for (var s = r + 1; s < this.t; ++s) t.data[s - r - 1] |= (this.data[s] & i) << n, t.data[s - r] = this.data[s] >> a; a > 0 && (t.data[this.t - r - 1] |= (this.s & i) << n), t.t = this.t - r, t.clamp(); } }, i.prototype.subTo = function (e, t) { for (var r = 0, a = 0, n = Math.min(e.t, this.t); r < n;) a += this.data[r] - e.data[r], t.data[r++] = a & this.DM, a >>= this.DB; if (e.t < this.t) { for (a -= e.s; r < this.t;) a += this.data[r], t.data[r++] = a & this.DM, a >>= this.DB; a += this.s; } else { for (a += this.s; r < e.t;) a -= e.data[r], t.data[r++] = a & this.DM, a >>= this.DB; a -= e.s; } t.s = a < 0 ? -1 : 0, a < -1 ? t.data[r++] = this.DV + a : a > 0 && (t.data[r++] = a), t.t = r, t.clamp(); }, i.prototype.multiplyTo = function (e, t) { var r = this.abs(), a = e.abs(), n = r.t; for (t.t = n + a.t; --n >= 0;) t.data[n] = 0; for (n = 0; n < a.t; ++n) t.data[n + r.t] = r.am(0, a.data[n], t, n, 0, r.t); t.s = 0, t.clamp(), this.s != e.s && i.ZERO.subTo(t, t); }, i.prototype.squareTo = function (e) { for (var t = this.abs(), r = e.t = 2 * t.t; --r >= 0;) e.data[r] = 0; for (r = 0; r < t.t - 1; ++r) { var a = t.am(r, t.data[r], e, 2 * r, 0, 1); (e.data[r + t.t] += t.am(r + 1, 2 * t.data[r], e, 2 * r + 1, a, t.t - r - 1)) >= t.DV && (e.data[r + t.t] -= t.DV, e.data[r + t.t + 1] = 1); } e.t > 0 && (e.data[e.t - 1] += t.am(r, t.data[r], e, 2 * r, 0, 1)), e.s = 0, e.clamp(); }, i.prototype.divRemTo = function (e, t, r) { var a = e.abs(); if (!(a.t <= 0)) { var n = this.abs(); if (n.t < a.t) return null != t && t.fromInt(0), void (null != r && this.copyTo(r)); null == r && (r = s()); var o = s(), c = this.s, u = e.s, l = this.DB - d(a.data[a.t - 1]); l > 0 ? (a.lShiftTo(l, o), n.lShiftTo(l, r)) : (a.copyTo(o), n.copyTo(r)); var p = o.t, f = o.data[p - 1]; if (0 != f) { var h = f * (1 << this.F1) + (p > 1 ? o.data[p - 2] >> this.F2 : 0), y = this.FV / h, g = (1 << this.F1) / h, m = 1 << this.F2, v = r.t, C = v - p, E = null == t ? s() : t; for (o.dlShiftTo(C, E), r.compareTo(E) >= 0 && (r.data[r.t++] = 1, r.subTo(E, r)), i.ONE.dlShiftTo(p, E), E.subTo(o, o); o.t < p;) o.data[o.t++] = 0; for (; --C >= 0;) { var S = r.data[--v] == f ? this.DM : Math.floor(r.data[v] * y + (r.data[v - 1] + m) * g); if ((r.data[v] += o.am(0, S, r, C, 0, p)) < S) for (o.dlShiftTo(C, E), r.subTo(E, r); r.data[v] < --S;) r.subTo(E, r); } null != t && (r.drShiftTo(p, t), c != u && i.ZERO.subTo(t, t)), r.t = p, r.clamp(), l > 0 && r.rShiftTo(l, r), c < 0 && i.ZERO.subTo(r, r); } } }, i.prototype.invDigit = function () { if (this.t < 1) return 0; var e = this.data[0]; if (0 == (1 & e)) return 0; var t = 3 & e; return (t = (t = (t = (t = t * (2 - (15 & e) * t) & 15) * (2 - (255 & e) * t) & 255) * (2 - ((65535 & e) * t & 65535)) & 65535) * (2 - e * t % this.DV) % this.DV) > 0 ? this.DV - t : -t; }, i.prototype.isEven = function () { return 0 == (this.t > 0 ? 1 & this.data[0] : this.s); }, i.prototype.exp = function (e, t) { if (e > 4294967295 || e < 1) return i.ONE; var r = s(), a = s(), n = t.convert(this), o = d(e) - 1; for (n.copyTo(r); --o >= 0;) if (t.sqrTo(r, a), (e & 1 << o) > 0) t.mulTo(a, n, r);else { var c = r; r = a, a = c; } return t.revert(r); }, i.prototype.toString = function (e) { if (this.s < 0) return "-" + this.negate().toString(e); var t; if (16 == e) t = 4;else if (8 == e) t = 3;else if (2 == e) t = 1;else if (32 == e) t = 5;else { if (4 != e) return this.toRadix(e); t = 2; } var r, a = (1 << t) - 1, n = !1, i = "", s = this.t, o = this.DB - s * this.DB % t; if (s-- > 0) for (o < this.DB && (r = this.data[s] >> o) > 0 && (n = !0, i = p(r)); s >= 0;) o < t ? (r = (this.data[s] & (1 << o) - 1) << t - o, r |= this.data[--s] >> (o += this.DB - t)) : (r = this.data[s] >> (o -= t) & a, o <= 0 && (o += this.DB, --s)), r > 0 && (n = !0), n && (i += p(r)); return n ? i : "0"; }, i.prototype.negate = function () { var e = s(); return i.ZERO.subTo(this, e), e; }, i.prototype.abs = function () { return this.s < 0 ? this.negate() : this; }, i.prototype.compareTo = function (e) { var t = this.s - e.s; if (0 != t) return t; var r = this.t; if (0 != (t = r - e.t)) return this.s < 0 ? -t : t; for (; --r >= 0;) if (0 != (t = this.data[r] - e.data[r])) return t; return 0; }, i.prototype.bitLength = function () { return this.t <= 0 ? 0 : this.DB * (this.t - 1) + d(this.data[this.t - 1] ^ this.s & this.DM); }, i.prototype.mod = function (e) { var t = s(); return this.abs().divRemTo(e, null, t), this.s < 0 && t.compareTo(i.ZERO) > 0 && e.subTo(t, t), t; }, i.prototype.modPowInt = function (e, t) { var r; return r = e < 256 || t.isEven() ? new y(t) : new g(t), this.exp(e, r); }, i.ZERO = h(0), i.ONE = h(1), I.prototype.convert = A, I.prototype.revert = A, I.prototype.mulTo = function (e, t, r) { e.multiplyTo(t, r); }, I.prototype.sqrTo = function (e, t) { e.squareTo(t); }, B.prototype.convert = function (e) { if (e.s < 0 || e.t > 2 * this.m.t) return e.mod(this.m); if (e.compareTo(this.m) < 0) return e; var t = s(); return e.copyTo(t), this.reduce(t), t; }, B.prototype.revert = function (e) { return e; }, B.prototype.reduce = function (e) { for (e.drShiftTo(this.m.t - 1, this.r2), e.t > this.m.t + 1 && (e.t = this.m.t + 1, e.clamp()), this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3), this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2); e.compareTo(this.r2) < 0;) e.dAddOffset(1, this.m.t + 1); for (e.subTo(this.r2, e); e.compareTo(this.m) >= 0;) e.subTo(this.m, e); }, B.prototype.mulTo = function (e, t, r) { e.multiplyTo(t, r), this.reduce(r); }, B.prototype.sqrTo = function (e, t) { e.squareTo(t), this.reduce(t); }; var b = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509], N = (1 << 26) / b[b.length - 1]; i.prototype.chunkSize = function (e) { return Math.floor(Math.LN2 * this.DB / Math.log(e)); }, i.prototype.toRadix = function (e) { if (null == e && (e = 10), 0 == this.signum() || e < 2 || e > 36) return "0"; var t = this.chunkSize(e), r = Math.pow(e, t), a = h(r), n = s(), i = s(), o = ""; for (this.divRemTo(a, n, i); n.signum() > 0;) o = (r + i.intValue()).toString(e).substr(1) + o, n.divRemTo(a, n, i); return i.intValue().toString(e) + o; }, i.prototype.fromRadix = function (e, t) { this.fromInt(0), null == t && (t = 10); for (var r = this.chunkSize(t), a = Math.pow(t, r), n = !1, s = 0, o = 0, c = 0; c < e.length; ++c) { var u = f(e, c); u < 0 ? "-" == e.charAt(c) && 0 == this.signum() && (n = !0) : (o = t * o + u, ++s >= r && (this.dMultiply(a), this.dAddOffset(o, 0), s = 0, o = 0)); } s > 0 && (this.dMultiply(Math.pow(t, s)), this.dAddOffset(o, 0)), n && i.ZERO.subTo(this, this); }, i.prototype.fromNumber = function (e, t, r) { if ("number" == typeof t) { if (e < 2) this.fromInt(1);else for (this.fromNumber(e, r), this.testBit(e - 1) || this.bitwiseTo(i.ONE.shiftLeft(e - 1), v, this), this.isEven() && this.dAddOffset(1, 0); !this.isProbablePrime(t);) this.dAddOffset(2, 0), this.bitLength() > e && this.subTo(i.ONE.shiftLeft(e - 1), this); } else { var a = new Array(), n = 7 & e; a.length = 1 + (e >> 3), t.nextBytes(a), n > 0 ? a[0] &= (1 << n) - 1 : a[0] = 0, this.fromString(a, 256); } }, i.prototype.bitwiseTo = function (e, t, r) { var a, n, i = Math.min(e.t, this.t); for (a = 0; a < i; ++a) r.data[a] = t(this.data[a], e.data[a]); if (e.t < this.t) { for (n = e.s & this.DM, a = i; a < this.t; ++a) r.data[a] = t(this.data[a], n); r.t = this.t; } else { for (n = this.s & this.DM, a = i; a < e.t; ++a) r.data[a] = t(n, e.data[a]); r.t = e.t; } r.s = t(this.s, e.s), r.clamp(); }, i.prototype.changeBit = function (e, t) { var r = i.ONE.shiftLeft(e); return this.bitwiseTo(r, t, r), r; }, i.prototype.addTo = function (e, t) { for (var r = 0, a = 0, n = Math.min(e.t, this.t); r < n;) a += this.data[r] + e.data[r], t.data[r++] = a & this.DM, a >>= this.DB; if (e.t < this.t) { for (a += e.s; r < this.t;) a += this.data[r], t.data[r++] = a & this.DM, a >>= this.DB; a += this.s; } else { for (a += this.s; r < e.t;) a += e.data[r], t.data[r++] = a & this.DM, a >>= this.DB; a += e.s; } t.s = a < 0 ? -1 : 0, a > 0 ? t.data[r++] = a : a < -1 && (t.data[r++] = this.DV + a), t.t = r, t.clamp(); }, i.prototype.dMultiply = function (e) { this.data[this.t] = this.am(0, e - 1, this, 0, 0, this.t), ++this.t, this.clamp(); }, i.prototype.dAddOffset = function (e, t) { if (0 != e) { for (; this.t <= t;) this.data[this.t++] = 0; for (this.data[t] += e; this.data[t] >= this.DV;) this.data[t] -= this.DV, ++t >= this.t && (this.data[this.t++] = 0), ++this.data[t]; } }, i.prototype.multiplyLowerTo = function (e, t, r) { var a, n = Math.min(this.t + e.t, t); for (r.s = 0, r.t = n; n > 0;) r.data[--n] = 0; for (a = r.t - this.t; n < a; ++n) r.data[n + this.t] = this.am(0, e.data[n], r, n, 0, this.t); for (a = Math.min(e.t, t); n < a; ++n) this.am(0, e.data[n], r, n, 0, t - n); r.clamp(); }, i.prototype.multiplyUpperTo = function (e, t, r) { --t; var a = r.t = this.t + e.t - t; for (r.s = 0; --a >= 0;) r.data[a] = 0; for (a = Math.max(t - this.t, 0); a < e.t; ++a) r.data[this.t + a - t] = this.am(t - a, e.data[a], r, 0, 0, this.t + a - t); r.clamp(), r.drShiftTo(1, r); }, i.prototype.modInt = function (e) { if (e <= 0) return 0; var t = this.DV % e, r = this.s < 0 ? e - 1 : 0; if (this.t > 0) if (0 == t) r = this.data[0] % e;else for (var a = this.t - 1; a >= 0; --a) r = (t * r + this.data[a]) % e; return r; }, i.prototype.millerRabin = function (e) { var t = this.subtract(i.ONE), r = t.getLowestSetBit(); if (r <= 0) return !1; for (var a, n = t.shiftRight(r), s = { nextBytes: function (e) { for (var t = 0; t < e.length; ++t) e[t] = Math.floor(256 * Math.random()); } }, o = 0; o < e; ++o) { do { a = new i(this.bitLength(), s); } while (a.compareTo(i.ONE) <= 0 || a.compareTo(t) >= 0); var c = a.modPow(n, this); if (0 != c.compareTo(i.ONE) && 0 != c.compareTo(t)) { for (var u = 1; u++ < r && 0 != c.compareTo(t);) if (0 == (c = c.modPowInt(2, this)).compareTo(i.ONE)) return !1; if (0 != c.compareTo(t)) return !1; } } return !0; }, i.prototype.clone = function () { var e = s(); return this.copyTo(e), e; }, i.prototype.intValue = function () { if (this.s < 0) { if (1 == this.t) return this.data[0] - this.DV; if (0 == this.t) return -1; } else { if (1 == this.t) return this.data[0]; if (0 == this.t) return 0; } return (this.data[1] & (1 << 32 - this.DB) - 1) << this.DB | this.data[0]; }, i.prototype.byteValue = function () { return 0 == this.t ? this.s : this.data[0] << 24 >> 24; }, i.prototype.shortValue = function () { return 0 == this.t ? this.s : this.data[0] << 16 >> 16; }, i.prototype.signum = function () { return this.s < 0 ? -1 : this.t <= 0 || 1 == this.t && this.data[0] <= 0 ? 0 : 1; }, i.prototype.toByteArray = function () { var e = this.t, t = new Array(); t[0] = this.s; var r, a = this.DB - e * this.DB % 8, n = 0; if (e-- > 0) for (a < this.DB && (r = this.data[e] >> a) != (this.s & this.DM) >> a && (t[n++] = r | this.s << this.DB - a); e >= 0;) a < 8 ? (r = (this.data[e] & (1 << a) - 1) << 8 - a, r |= this.data[--e] >> (a += this.DB - 8)) : (r = this.data[e] >> (a -= 8) & 255, a <= 0 && (a += this.DB, --e)), 0 != (128 & r) && (r |= -256), 0 == n && (128 & this.s) != (128 & r) && ++n, (n > 0 || r != this.s) && (t[n++] = r); return t; }, i.prototype.equals = function (e) { return 0 == this.compareTo(e); }, i.prototype.min = function (e) { return this.compareTo(e) < 0 ? this : e; }, i.prototype.max = function (e) { return this.compareTo(e) > 0 ? this : e; }, i.prototype.and = function (e) { var t = s(); return this.bitwiseTo(e, m, t), t; }, i.prototype.or = function (e) { var t = s(); return this.bitwiseTo(e, v, t), t; }, i.prototype.xor = function (e) { var t = s(); return this.bitwiseTo(e, C, t), t; }, i.prototype.andNot = function (e) { var t = s(); return this.bitwiseTo(e, E, t), t; }, i.prototype.not = function () { for (var e = s(), t = 0; t < this.t; ++t) e.data[t] = this.DM & ~this.data[t]; return e.t = this.t, e.s = ~this.s, e; }, i.prototype.shiftLeft = function (e) { var t = s(); return e < 0 ? this.rShiftTo(-e, t) : this.lShiftTo(e, t), t; }, i.prototype.shiftRight = function (e) { var t = s(); return e < 0 ? this.lShiftTo(-e, t) : this.rShiftTo(e, t), t; }, i.prototype.getLowestSetBit = function () { for (var e = 0; e < this.t; ++e) if (0 != this.data[e]) return e * this.DB + S(this.data[e]); return this.s < 0 ? this.t * this.DB : -1; }, i.prototype.bitCount = function () { for (var e = 0, t = this.s & this.DM, r = 0; r < this.t; ++r) e += T(this.data[r] ^ t); return e; }, i.prototype.testBit = function (e) { var t = Math.floor(e / this.DB); return t >= this.t ? 0 != this.s : 0 != (this.data[t] & 1 << e % this.DB); }, i.prototype.setBit = function (e) { return this.changeBit(e, v); }, i.prototype.clearBit = function (e) { return this.changeBit(e, E); }, i.prototype.flipBit = function (e) { return this.changeBit(e, C); }, i.prototype.add = function (e) { var t = s(); return this.addTo(e, t), t; }, i.prototype.subtract = function (e) { var t = s(); return this.subTo(e, t), t; }, i.prototype.multiply = function (e) { var t = s(); return this.multiplyTo(e, t), t; }, i.prototype.divide = function (e) { var t = s(); return this.divRemTo(e, t, null), t; }, i.prototype.remainder = function (e) { var t = s(); return this.divRemTo(e, null, t), t; }, i.prototype.divideAndRemainder = function (e) { var t = s(), r = s(); return this.divRemTo(e, t, r), new Array(t, r); }, i.prototype.modPow = function (e, t) { var r, a, n = e.bitLength(), i = h(1); if (n <= 0) return i; r = n < 18 ? 1 : n < 48 ? 3 : n < 144 ? 4 : n < 768 ? 5 : 6, a = n < 8 ? new y(t) : t.isEven() ? new B(t) : new g(t); var o = new Array(), c = 3, u = r - 1, l = (1 << r) - 1; if (o[1] = a.convert(this), r > 1) { var p = s(); for (a.sqrTo(o[1], p); c <= l;) o[c] = s(), a.mulTo(p, o[c - 2], o[c]), c += 2; } var f, m, v = e.t - 1, C = !0, E = s(); for (n = d(e.data[v]) - 1; v >= 0;) { for (n >= u ? f = e.data[v] >> n - u & l : (f = (e.data[v] & (1 << n + 1) - 1) << u - n, v > 0 && (f |= e.data[v - 1] >> this.DB + n - u)), c = r; 0 == (1 & f);) f >>= 1, --c; if ((n -= c) < 0 && (n += this.DB, --v), C) o[f].copyTo(i), C = !1;else { for (; c > 1;) a.sqrTo(i, E), a.sqrTo(E, i), c -= 2; c > 0 ? a.sqrTo(i, E) : (m = i, i = E, E = m), a.mulTo(E, o[f], i); } for (; v >= 0 && 0 == (e.data[v] & 1 << n);) a.sqrTo(i, E), m = i, i = E, E = m, --n < 0 && (n = this.DB - 1, --v); } return a.revert(i); }, i.prototype.modInverse = function (e) { var t = e.isEven(); if (this.isEven() && t || 0 == e.signum()) return i.ZERO; for (var r = e.clone(), a = this.clone(), n = h(1), s = h(0), o = h(0), c = h(1); 0 != r.signum();) { for (; r.isEven();) r.rShiftTo(1, r), t ? (n.isEven() && s.isEven() || (n.addTo(this, n), s.subTo(e, s)), n.rShiftTo(1, n)) : s.isEven() || s.subTo(e, s), s.rShiftTo(1, s); for (; a.isEven();) a.rShiftTo(1, a), t ? (o.isEven() && c.isEven() || (o.addTo(this, o), c.subTo(e, c)), o.rShiftTo(1, o)) : c.isEven() || c.subTo(e, c), c.rShiftTo(1, c); r.compareTo(a) >= 0 ? (r.subTo(a, r), t && n.subTo(o, n), s.subTo(c, s)) : (a.subTo(r, a), t && o.subTo(n, o), c.subTo(s, c)); } return 0 != a.compareTo(i.ONE) ? i.ZERO : c.compareTo(e) >= 0 ? c.subtract(e) : c.signum() < 0 ? (c.addTo(e, c), c.signum() < 0 ? c.add(e) : c) : c; }, i.prototype.pow = function (e) { return this.exp(e, new I()); }, i.prototype.gcd = function (e) { var t = this.s < 0 ? this.negate() : this.clone(), r = e.s < 0 ? e.negate() : e.clone(); if (t.compareTo(r) < 0) { var a = t; t = r, r = a; } var n = t.getLowestSetBit(), i = r.getLowestSetBit(); if (i < 0) return t; for (n < i && (i = n), i > 0 && (t.rShiftTo(i, t), r.rShiftTo(i, r)); t.signum() > 0;) (n = t.getLowestSetBit()) > 0 && t.rShiftTo(n, t), (n = r.getLowestSetBit()) > 0 && r.rShiftTo(n, r), t.compareTo(r) >= 0 ? (t.subTo(r, t), t.rShiftTo(1, t)) : (r.subTo(t, r), r.rShiftTo(1, r)); return i > 0 && r.lShiftTo(i, r), r; }, i.prototype.isProbablePrime = function (e) { var t, r = this.abs(); if (1 == r.t && r.data[0] <= b[b.length - 1]) { for (t = 0; t < b.length; ++t) if (r.data[0] == b[t]) return !0; return !1; } if (r.isEven()) return !1; for (t = 1; t < b.length;) { for (var a = b[t], n = t + 1; n < b.length && a < N;) a *= b[n++]; for (a = r.modInt(a); t < n;) if (a % b[t++] == 0) return !1; } return r.millerRabin(e); }; }, function (e, t, r) { var a = r(0); r(1), e.exports = a.cipher = a.cipher || {}, a.cipher.algorithms = a.cipher.algorithms || {}, a.cipher.createCipher = function (e, t) { var r = e; if ("string" == typeof r && (r = a.cipher.getAlgorithm(r)) && (r = r()), !r) throw new Error("Unsupported algorithm: " + e); return new a.cipher.BlockCipher({ algorithm: r, key: t, decrypt: !1 }); }, a.cipher.createDecipher = function (e, t) { var r = e; if ("string" == typeof r && (r = a.cipher.getAlgorithm(r)) && (r = r()), !r) throw new Error("Unsupported algorithm: " + e); return new a.cipher.BlockCipher({ algorithm: r, key: t, decrypt: !0 }); }, a.cipher.registerAlgorithm = function (e, t) { e = e.toUpperCase(), a.cipher.algorithms[e] = t; }, a.cipher.getAlgorithm = function (e) { return (e = e.toUpperCase()) in a.cipher.algorithms ? a.cipher.algorithms[e] : null; }; var n = a.cipher.BlockCipher = function (e) { this.algorithm = e.algorithm, this.mode = this.algorithm.mode, this.blockSize = this.mode.blockSize, this._finish = !1, this._input = null, this.output = null, this._op = e.decrypt ? this.mode.decrypt : this.mode.encrypt, this._decrypt = e.decrypt, this.algorithm.initialize(e); }; n.prototype.start = function (e) { e = e || {}; var t = {}; for (var r in e) t[r] = e[r]; t.decrypt = this._decrypt, this._finish = !1, this._input = a.util.createBuffer(), this.output = e.output || a.util.createBuffer(), this.mode.start(t); }, n.prototype.update = function (e) { for (e && this._input.putBuffer(e); !this._op.call(this.mode, this._input, this.output, this._finish) && !this._finish;); this._input.compact(); }, n.prototype.finish = function (e) { !e || "ECB" !== this.mode.name && "CBC" !== this.mode.name || (this.mode.pad = function (t) { return e(this.blockSize, t, !1); }, this.mode.unpad = function (t) { return e(this.blockSize, t, !0); }); var t = {}; return t.decrypt = this._decrypt, t.overflow = this._input.length() % this.blockSize, !(!this._decrypt && this.mode.pad && !this.mode.pad(this._input, t)) && (this._finish = !0, this.update(), !(this._decrypt && this.mode.unpad && !this.mode.unpad(this.output, t)) && !(this.mode.afterFinish && !this.mode.afterFinish(this.output, t))); }; }, function (e, t, r) { var a = r(0); r(4), r(1); var n = e.exports = a.md5 = a.md5 || {}; a.md.md5 = a.md.algorithms.md5 = n, n.create = function () { u || function () { i = String.fromCharCode(128), i += a.util.fillString(String.fromCharCode(0), 64), s = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1, 6, 11, 0, 5, 10, 15, 4, 9, 14, 3, 8, 13, 2, 7, 12, 5, 8, 11, 14, 1, 4, 7, 10, 13, 0, 3, 6, 9, 12, 15, 2, 0, 7, 14, 5, 12, 3, 10, 1, 8, 15, 6, 13, 4, 11, 2, 9], o = [7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21], c = new Array(64); for (var e = 0; e < 64; ++e) c[e] = Math.floor(4294967296 * Math.abs(Math.sin(e + 1))); u = !0; }(); var e = null, t = a.util.createBuffer(), r = new Array(16), n = { algorithm: "md5", blockLength: 64, digestLength: 16, messageLength: 0, fullMessageLength: null, messageLengthSize: 8, start: function () { n.messageLength = 0, n.fullMessageLength = n.messageLength64 = []; for (var r = n.messageLengthSize / 4, i = 0; i < r; ++i) n.fullMessageLength.push(0); return t = a.util.createBuffer(), e = { h0: 1732584193, h1: 4023233417, h2: 2562383102, h3: 271733878 }, n; } }; return n.start(), n.update = function (i, s) { "utf8" === s && (i = a.util.encodeUtf8(i)); var o = i.length; n.messageLength += o, o = [o / 4294967296 >>> 0, o >>> 0]; for (var c = n.fullMessageLength.length - 1; c >= 0; --c) n.fullMessageLength[c] += o[1], o[1] = o[0] + (n.fullMessageLength[c] / 4294967296 >>> 0), n.fullMessageLength[c] = n.fullMessageLength[c] >>> 0, o[0] = o[1] / 4294967296 >>> 0; return t.putBytes(i), l(e, r, t), (t.read > 2048 || 0 === t.length()) && t.compact(), n; }, n.digest = function () { var s = a.util.createBuffer(); s.putBytes(t.bytes()); var o = n.fullMessageLength[n.fullMessageLength.length - 1] + n.messageLengthSize & n.blockLength - 1; s.putBytes(i.substr(0, n.blockLength - o)); for (var c, u = 0, p = n.fullMessageLength.length - 1; p >= 0; --p) u = (c = 8 * n.fullMessageLength[p] + u) / 4294967296 >>> 0, s.putInt32Le(c >>> 0); var f = { h0: e.h0, h1: e.h1, h2: e.h2, h3: e.h3 }; l(f, r, s); var h = a.util.createBuffer(); return h.putInt32Le(f.h0), h.putInt32Le(f.h1), h.putInt32Le(f.h2), h.putInt32Le(f.h3), h; }, n; }; var i = null, s = null, o = null, c = null, u = !1; function l(e, t, r) { for (var a, n, i, u, l, p, f, h = r.length(); h >= 64;) { for (n = e.h0, i = e.h1, u = e.h2, l = e.h3, f = 0; f < 16; ++f) t[f] = r.getInt32Le(), a = n + (l ^ i & (u ^ l)) + c[f] + t[f], n = l, l = u, u = i, i += a << (p = o[f]) | a >>> 32 - p; for (; f < 32; ++f) a = n + (u ^ l & (i ^ u)) + c[f] + t[s[f]], n = l, l = u, u = i, i += a << (p = o[f]) | a >>> 32 - p; for (; f < 48; ++f) a = n + (i ^ u ^ l) + c[f] + t[s[f]], n = l, l = u, u = i, i += a << (p = o[f]) | a >>> 32 - p; for (; f < 64; ++f) a = n + (u ^ (i | ~l)) + c[f] + t[s[f]], n = l, l = u, u = i, i += a << (p = o[f]) | a >>> 32 - p; e.h0 = e.h0 + n | 0, e.h1 = e.h1 + i | 0, e.h2 = e.h2 + u | 0, e.h3 = e.h3 + l | 0, h -= 64; } } }, function (e, t, r) { var a = r(0); r(8), r(4), r(1); var n, i = a.pkcs5 = a.pkcs5 || {}; a.util.isNodejs && !a.options.usePureJavaScript && (n = r(16)), e.exports = a.pbkdf2 = i.pbkdf2 = function (e, t, r, i, s, o) { if ("function" == typeof s && (o = s, s = null), a.util.isNodejs && !a.options.usePureJavaScript && n.pbkdf2 && (null === s || "object" != typeof s) && (n.pbkdf2Sync.length > 4 || !s || "sha1" === s)) return "string" != typeof s && (s = "sha1"), e = Buffer.from(e, "binary"), t = Buffer.from(t, "binary"), o ? 4 === n.pbkdf2Sync.length ? n.pbkdf2(e, t, r, i, function (e, t) { if (e) return o(e); o(null, t.toString("binary")); }) : n.pbkdf2(e, t, r, i, s, function (e, t) { if (e) return o(e); o(null, t.toString("binary")); }) : 4 === n.pbkdf2Sync.length ? n.pbkdf2Sync(e, t, r, i).toString("binary") : n.pbkdf2Sync(e, t, r, i, s).toString("binary"); if (null == s && (s = "sha1"), "string" == typeof s) { if (!(s in a.md.algorithms)) throw new Error("Unknown hash algorithm: " + s); s = a.md[s].create(); } var c = s.digestLength; if (i > 4294967295 * c) { var u = new Error("Derived key is too long."); if (o) return o(u); throw u; } var l = Math.ceil(i / c), p = i - (l - 1) * c, f = a.hmac.create(); f.start(s, e); var h, d, y, g = ""; if (!o) { for (var m = 1; m <= l; ++m) { f.start(null, null), f.update(t), f.update(a.util.int32ToBytes(m)), h = y = f.digest().getBytes(); for (var v = 2; v <= r; ++v) f.start(null, null), f.update(y), d = f.digest().getBytes(), h = a.util.xorBytes(h, d, c), y = d; g += m < l ? h : h.substr(0, p); } return g; } m = 1; function C() { if (m > l) return o(null, g); f.start(null, null), f.update(t), f.update(a.util.int32ToBytes(m)), h = y = f.digest().getBytes(), v = 2, E(); } function E() { if (v <= r) return f.start(null, null), f.update(y), d = f.digest().getBytes(), h = a.util.xorBytes(h, d, c), y = d, ++v, a.util.setImmediate(E); g += m < l ? h : h.substr(0, p), ++m, C(); } C(); }; }, function (e, t) {}, function (e, t, r) { var a = r(0); r(5), r(3), r(10), r(4), r(37), r(6), r(7), r(18), r(11), r(1); var n = a.asn1, i = e.exports = a.pki = a.pki || {}, s = i.oids, o = {}; o.CN = s.commonName, o.commonName = "CN", o.C = s.countryName, o.countryName = "C", o.L = s.localityName, o.localityName = "L", o.ST = s.stateOrProvinceName, o.stateOrProvinceName = "ST", o.O = s.organizationName, o.organizationName = "O", o.OU = s.organizationalUnitName, o.organizationalUnitName = "OU", o.E = s.emailAddress, o.emailAddress = "E"; var c = a.pki.rsa.publicKeyValidator, u = { name: "Certificate", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "Certificate.TBSCertificate", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, captureAsn1: "tbsCertificate", value: [{ name: "Certificate.TBSCertificate.version", tagClass: n.Class.CONTEXT_SPECIFIC, type: 0, constructed: !0, optional: !0, value: [{ name: "Certificate.TBSCertificate.version.integer", tagClass: n.Class.UNIVERSAL, type: n.Type.INTEGER, constructed: !1, capture: "certVersion" }] }, { name: "Certificate.TBSCertificate.serialNumber", tagClass: n.Class.UNIVERSAL, type: n.Type.INTEGER, constructed: !1, capture: "certSerialNumber" }, { name: "Certificate.TBSCertificate.signature", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "Certificate.TBSCertificate.signature.algorithm", tagClass: n.Class.UNIVERSAL, type: n.Type.OID, constructed: !1, capture: "certinfoSignatureOid" }, { name: "Certificate.TBSCertificate.signature.parameters", tagClass: n.Class.UNIVERSAL, optional: !0, captureAsn1: "certinfoSignatureParams" }] }, { name: "Certificate.TBSCertificate.issuer", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, captureAsn1: "certIssuer" }, { name: "Certificate.TBSCertificate.validity", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "Certificate.TBSCertificate.validity.notBefore (utc)", tagClass: n.Class.UNIVERSAL, type: n.Type.UTCTIME, constructed: !1, optional: !0, capture: "certValidity1UTCTime" }, { name: "Certificate.TBSCertificate.validity.notBefore (generalized)", tagClass: n.Class.UNIVERSAL, type: n.Type.GENERALIZEDTIME, constructed: !1, optional: !0, capture: "certValidity2GeneralizedTime" }, { name: "Certificate.TBSCertificate.validity.notAfter (utc)", tagClass: n.Class.UNIVERSAL, type: n.Type.UTCTIME, constructed: !1, optional: !0, capture: "certValidity3UTCTime" }, { name: "Certificate.TBSCertificate.validity.notAfter (generalized)", tagClass: n.Class.UNIVERSAL, type: n.Type.GENERALIZEDTIME, constructed: !1, optional: !0, capture: "certValidity4GeneralizedTime" }] }, { name: "Certificate.TBSCertificate.subject", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, captureAsn1: "certSubject" }, c, { name: "Certificate.TBSCertificate.issuerUniqueID", tagClass: n.Class.CONTEXT_SPECIFIC, type: 1, constructed: !0, optional: !0, value: [{ name: "Certificate.TBSCertificate.issuerUniqueID.id", tagClass: n.Class.UNIVERSAL, type: n.Type.BITSTRING, constructed: !1, captureBitStringValue: "certIssuerUniqueId" }] }, { name: "Certificate.TBSCertificate.subjectUniqueID", tagClass: n.Class.CONTEXT_SPECIFIC, type: 2, constructed: !0, optional: !0, value: [{ name: "Certificate.TBSCertificate.subjectUniqueID.id", tagClass: n.Class.UNIVERSAL, type: n.Type.BITSTRING, constructed: !1, captureBitStringValue: "certSubjectUniqueId" }] }, { name: "Certificate.TBSCertificate.extensions", tagClass: n.Class.CONTEXT_SPECIFIC, type: 3, constructed: !0, captureAsn1: "certExtensions", optional: !0 }] }, { name: "Certificate.signatureAlgorithm", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "Certificate.signatureAlgorithm.algorithm", tagClass: n.Class.UNIVERSAL, type: n.Type.OID, constructed: !1, capture: "certSignatureOid" }, { name: "Certificate.TBSCertificate.signature.parameters", tagClass: n.Class.UNIVERSAL, optional: !0, captureAsn1: "certSignatureParams" }] }, { name: "Certificate.signatureValue", tagClass: n.Class.UNIVERSAL, type: n.Type.BITSTRING, constructed: !1, captureBitStringValue: "certSignature" }] }, l = { name: "rsapss", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "rsapss.hashAlgorithm", tagClass: n.Class.CONTEXT_SPECIFIC, type: 0, constructed: !0, value: [{ name: "rsapss.hashAlgorithm.AlgorithmIdentifier", tagClass: n.Class.UNIVERSAL, type: n.Class.SEQUENCE, constructed: !0, optional: !0, value: [{ name: "rsapss.hashAlgorithm.AlgorithmIdentifier.algorithm", tagClass: n.Class.UNIVERSAL, type: n.Type.OID, constructed: !1, capture: "hashOid" }] }] }, { name: "rsapss.maskGenAlgorithm", tagClass: n.Class.CONTEXT_SPECIFIC, type: 1, constructed: !0, value: [{ name: "rsapss.maskGenAlgorithm.AlgorithmIdentifier", tagClass: n.Class.UNIVERSAL, type: n.Class.SEQUENCE, constructed: !0, optional: !0, value: [{ name: "rsapss.maskGenAlgorithm.AlgorithmIdentifier.algorithm", tagClass: n.Class.UNIVERSAL, type: n.Type.OID, constructed: !1, capture: "maskGenOid" }, { name: "rsapss.maskGenAlgorithm.AlgorithmIdentifier.params", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "rsapss.maskGenAlgorithm.AlgorithmIdentifier.params.algorithm", tagClass: n.Class.UNIVERSAL, type: n.Type.OID, constructed: !1, capture: "maskGenHashOid" }] }] }] }, { name: "rsapss.saltLength", tagClass: n.Class.CONTEXT_SPECIFIC, type: 2, optional: !0, value: [{ name: "rsapss.saltLength.saltLength", tagClass: n.Class.UNIVERSAL, type: n.Class.INTEGER, constructed: !1, capture: "saltLength" }] }, { name: "rsapss.trailerField", tagClass: n.Class.CONTEXT_SPECIFIC, type: 3, optional: !0, value: [{ name: "rsapss.trailer.trailer", tagClass: n.Class.UNIVERSAL, type: n.Class.INTEGER, constructed: !1, capture: "trailer" }] }] }, p = { name: "CertificationRequestInfo", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, captureAsn1: "certificationRequestInfo", value: [{ name: "CertificationRequestInfo.integer", tagClass: n.Class.UNIVERSAL, type: n.Type.INTEGER, constructed: !1, capture: "certificationRequestInfoVersion" }, { name: "CertificationRequestInfo.subject", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, captureAsn1: "certificationRequestInfoSubject" }, c, { name: "CertificationRequestInfo.attributes", tagClass: n.Class.CONTEXT_SPECIFIC, type: 0, constructed: !0, optional: !0, capture: "certificationRequestInfoAttributes", value: [{ name: "CertificationRequestInfo.attributes", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "CertificationRequestInfo.attributes.type", tagClass: n.Class.UNIVERSAL, type: n.Type.OID, constructed: !1 }, { name: "CertificationRequestInfo.attributes.value", tagClass: n.Class.UNIVERSAL, type: n.Type.SET, constructed: !0 }] }] }] }, f = { name: "CertificationRequest", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, captureAsn1: "csr", value: [p, { name: "CertificationRequest.signatureAlgorithm", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "CertificationRequest.signatureAlgorithm.algorithm", tagClass: n.Class.UNIVERSAL, type: n.Type.OID, constructed: !1, capture: "csrSignatureOid" }, { name: "CertificationRequest.signatureAlgorithm.parameters", tagClass: n.Class.UNIVERSAL, optional: !0, captureAsn1: "csrSignatureParams" }] }, { name: "CertificationRequest.signature", tagClass: n.Class.UNIVERSAL, type: n.Type.BITSTRING, constructed: !1, captureBitStringValue: "csrSignature" }] }; function h(e, t) { "string" == typeof t && (t = { shortName: t }); for (var r, a = null, n = 0; null === a && n < e.attributes.length; ++n) r = e.attributes[n], (t.type && t.type === r.type || t.name && t.name === r.name || t.shortName && t.shortName === r.shortName) && (a = r); return a; } i.RDNAttributesAsArray = function (e, t) { for (var r, a, i, c = [], u = 0; u < e.value.length; ++u) { r = e.value[u]; for (var l = 0; l < r.value.length; ++l) i = {}, a = r.value[l], i.type = n.derToOid(a.value[0].value), i.value = a.value[1].value, i.valueTagClass = a.value[1].type, i.type in s && (i.name = s[i.type], i.name in o && (i.shortName = o[i.name])), t && (t.update(i.type), t.update(i.value)), c.push(i); } return c; }, i.CRIAttributesAsArray = function (e) { for (var t = [], r = 0; r < e.length; ++r) for (var a = e[r], c = n.derToOid(a.value[0].value), u = a.value[1].value, l = 0; l < u.length; ++l) { var p = {}; if (p.type = c, p.value = u[l].value, p.valueTagClass = u[l].type, p.type in s && (p.name = s[p.type], p.name in o && (p.shortName = o[p.name])), p.type === s.extensionRequest) { p.extensions = []; for (var f = 0; f < p.value.length; ++f) p.extensions.push(i.certificateExtensionFromAsn1(p.value[f])); } t.push(p); } return t; }; var d = function (e, t, r) { var a = {}; if (e !== s["RSASSA-PSS"]) return a; r && (a = { hash: { algorithmOid: s.sha1 }, mgf: { algorithmOid: s.mgf1, hash: { algorithmOid: s.sha1 } }, saltLength: 20 }); var i = {}, o = []; if (!n.validate(t, l, i, o)) { var c = new Error("Cannot read RSASSA-PSS parameter block."); throw c.errors = o, c; } return void 0 !== i.hashOid && (a.hash = a.hash || {}, a.hash.algorithmOid = n.derToOid(i.hashOid)), void 0 !== i.maskGenOid && (a.mgf = a.mgf || {}, a.mgf.algorithmOid = n.derToOid(i.maskGenOid), a.mgf.hash = a.mgf.hash || {}, a.mgf.hash.algorithmOid = n.derToOid(i.maskGenHashOid)), void 0 !== i.saltLength && (a.saltLength = i.saltLength.charCodeAt(0)), a; }; function y(e) { for (var t, r, i = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, []), s = e.attributes, o = 0; o < s.length; ++o) { var c = (t = s[o]).value, u = n.Type.PRINTABLESTRING; "valueTagClass" in t && (u = t.valueTagClass) === n.Type.UTF8 && (c = a.util.encodeUtf8(c)), r = n.create(n.Class.UNIVERSAL, n.Type.SET, !0, [n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(t.type).getBytes()), n.create(n.Class.UNIVERSAL, u, !1, c)])]), i.value.push(r); } return i; } function g(e) { for (var t, r = 0; r < e.length; ++r) { if (void 0 === (t = e[r]).name && (t.type && t.type in i.oids ? t.name = i.oids[t.type] : t.shortName && t.shortName in o && (t.name = i.oids[o[t.shortName]])), void 0 === t.type) { if (!t.name || !(t.name in i.oids)) throw (c = new Error("Attribute type not specified.")).attribute = t, c; t.type = i.oids[t.name]; } if (void 0 === t.shortName && t.name && t.name in o && (t.shortName = o[t.name]), t.type === s.extensionRequest && (t.valueConstructed = !0, t.valueTagClass = n.Type.SEQUENCE, !t.value && t.extensions)) { t.value = []; for (var a = 0; a < t.extensions.length; ++a) t.value.push(i.certificateExtensionToAsn1(m(t.extensions[a]))); } var c; if (void 0 === t.value) throw (c = new Error("Attribute value not specified.")).attribute = t, c; } } function m(e, t) { if (t = t || {}, void 0 === e.name && e.id && e.id in i.oids && (e.name = i.oids[e.id]), void 0 === e.id) { if (!e.name || !(e.name in i.oids)) throw (S = new Error("Extension ID not specified.")).extension = e, S; e.id = i.oids[e.name]; } if (void 0 !== e.value) return e; if ("keyUsage" === e.name) { var r = 0, o = 0, c = 0; e.digitalSignature && (o |= 128, r = 7), e.nonRepudiation && (o |= 64, r = 6), e.keyEncipherment && (o |= 32, r = 5), e.dataEncipherment && (o |= 16, r = 4), e.keyAgreement && (o |= 8, r = 3), e.keyCertSign && (o |= 4, r = 2), e.cRLSign && (o |= 2, r = 1), e.encipherOnly && (o |= 1, r = 0), e.decipherOnly && (c |= 128, r = 7); var u = String.fromCharCode(r); 0 !== c ? u += String.fromCharCode(o) + String.fromCharCode(c) : 0 !== o && (u += String.fromCharCode(o)), e.value = n.create(n.Class.UNIVERSAL, n.Type.BITSTRING, !1, u); } else if ("basicConstraints" === e.name) e.value = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, []), e.cA && e.value.value.push(n.create(n.Class.UNIVERSAL, n.Type.BOOLEAN, !1, String.fromCharCode(255))), "pathLenConstraint" in e && e.value.value.push(n.create(n.Class.UNIVERSAL, n.Type.INTEGER, !1, n.integerToDer(e.pathLenConstraint).getBytes()));else if ("extKeyUsage" === e.name) { e.value = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, []); var l = e.value.value; for (var p in e) !0 === e[p] && (p in s ? l.push(n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(s[p]).getBytes())) : -1 !== p.indexOf(".") && l.push(n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(p).getBytes()))); } else if ("nsCertType" === e.name) { r = 0, o = 0; e.client && (o |= 128, r = 7), e.server && (o |= 64, r = 6), e.email && (o |= 32, r = 5), e.objsign && (o |= 16, r = 4), e.reserved && (o |= 8, r = 3), e.sslCA && (o |= 4, r = 2), e.emailCA && (o |= 2, r = 1), e.objCA && (o |= 1, r = 0); u = String.fromCharCode(r); 0 !== o && (u += String.fromCharCode(o)), e.value = n.create(n.Class.UNIVERSAL, n.Type.BITSTRING, !1, u); } else if ("subjectAltName" === e.name || "issuerAltName" === e.name) { e.value = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, []); for (var f = 0; f < e.altNames.length; ++f) { u = (v = e.altNames[f]).value; if (7 === v.type && v.ip) { if (null === (u = a.util.bytesFromIP(v.ip))) throw (S = new Error('Extension "ip" value is not a valid IPv4 or IPv6 address.')).extension = e, S; } else 8 === v.type && (u = v.oid ? n.oidToDer(n.oidToDer(v.oid)) : n.oidToDer(u)); e.value.value.push(n.create(n.Class.CONTEXT_SPECIFIC, v.type, !1, u)); } } else if ("nsComment" === e.name && t.cert) { if (!/^[\x00-\x7F]*$/.test(e.comment) || e.comment.length < 1 || e.comment.length > 128) throw new Error('Invalid "nsComment" content.'); e.value = n.create(n.Class.UNIVERSAL, n.Type.IA5STRING, !1, e.comment); } else if ("subjectKeyIdentifier" === e.name && t.cert) { var h = t.cert.generateSubjectKeyIdentifier(); e.subjectKeyIdentifier = h.toHex(), e.value = n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, h.getBytes()); } else if ("authorityKeyIdentifier" === e.name && t.cert) { e.value = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, []); l = e.value.value; if (e.keyIdentifier) { var d = !0 === e.keyIdentifier ? t.cert.generateSubjectKeyIdentifier().getBytes() : e.keyIdentifier; l.push(n.create(n.Class.CONTEXT_SPECIFIC, 0, !1, d)); } if (e.authorityCertIssuer) { var g = [n.create(n.Class.CONTEXT_SPECIFIC, 4, !0, [y(!0 === e.authorityCertIssuer ? t.cert.issuer : e.authorityCertIssuer)])]; l.push(n.create(n.Class.CONTEXT_SPECIFIC, 1, !0, g)); } if (e.serialNumber) { var m = a.util.hexToBytes(!0 === e.serialNumber ? t.cert.serialNumber : e.serialNumber); l.push(n.create(n.Class.CONTEXT_SPECIFIC, 2, !1, m)); } } else if ("cRLDistributionPoints" === e.name) { e.value = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, []); l = e.value.value; var v, C = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, []), E = n.create(n.Class.CONTEXT_SPECIFIC, 0, !0, []); for (f = 0; f < e.altNames.length; ++f) { u = (v = e.altNames[f]).value; if (7 === v.type && v.ip) { if (null === (u = a.util.bytesFromIP(v.ip))) throw (S = new Error('Extension "ip" value is not a valid IPv4 or IPv6 address.')).extension = e, S; } else 8 === v.type && (u = v.oid ? n.oidToDer(n.oidToDer(v.oid)) : n.oidToDer(u)); E.value.push(n.create(n.Class.CONTEXT_SPECIFIC, v.type, !1, u)); } C.value.push(n.create(n.Class.CONTEXT_SPECIFIC, 0, !0, [E])), l.push(C); } var S; if (void 0 === e.value) throw (S = new Error("Extension value not specified.")).extension = e, S; return e; } function v(e, t) { switch (e) { case s["RSASSA-PSS"]: var r = []; return void 0 !== t.hash.algorithmOid && r.push(n.create(n.Class.CONTEXT_SPECIFIC, 0, !0, [n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(t.hash.algorithmOid).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.NULL, !1, "")])])), void 0 !== t.mgf.algorithmOid && r.push(n.create(n.Class.CONTEXT_SPECIFIC, 1, !0, [n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(t.mgf.algorithmOid).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(t.mgf.hash.algorithmOid).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.NULL, !1, "")])])])), void 0 !== t.saltLength && r.push(n.create(n.Class.CONTEXT_SPECIFIC, 2, !0, [n.create(n.Class.UNIVERSAL, n.Type.INTEGER, !1, n.integerToDer(t.saltLength).getBytes())])), n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, r); default: return n.create(n.Class.UNIVERSAL, n.Type.NULL, !1, ""); } } function C(e) { var t = n.create(n.Class.CONTEXT_SPECIFIC, 0, !0, []); if (0 === e.attributes.length) return t; for (var r = e.attributes, i = 0; i < r.length; ++i) { var s = r[i], o = s.value, c = n.Type.UTF8; "valueTagClass" in s && (c = s.valueTagClass), c === n.Type.UTF8 && (o = a.util.encodeUtf8(o)); var u = !1; "valueConstructed" in s && (u = s.valueConstructed); var l = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(s.type).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.SET, !0, [n.create(n.Class.UNIVERSAL, c, u, o)])]); t.value.push(l); } return t; } i.certificateFromPem = function (e, t, r) { var s = a.pem.decode(e)[0]; if ("CERTIFICATE" !== s.type && "X509 CERTIFICATE" !== s.type && "TRUSTED CERTIFICATE" !== s.type) { var o = new Error('Could not convert certificate from PEM; PEM header type is not "CERTIFICATE", "X509 CERTIFICATE", or "TRUSTED CERTIFICATE".'); throw o.headerType = s.type, o; } if (s.procType && "ENCRYPTED" === s.procType.type) throw new Error("Could not convert certificate from PEM; PEM is encrypted."); var c = n.fromDer(s.body, r); return i.certificateFromAsn1(c, t); }, i.certificateToPem = function (e, t) { var r = { type: "CERTIFICATE", body: n.toDer(i.certificateToAsn1(e)).getBytes() }; return a.pem.encode(r, { maxline: t }); }, i.publicKeyFromPem = function (e) { var t = a.pem.decode(e)[0]; if ("PUBLIC KEY" !== t.type && "RSA PUBLIC KEY" !== t.type) { var r = new Error('Could not convert public key from PEM; PEM header type is not "PUBLIC KEY" or "RSA PUBLIC KEY".'); throw r.headerType = t.type, r; } if (t.procType && "ENCRYPTED" === t.procType.type) throw new Error("Could not convert public key from PEM; PEM is encrypted."); var s = n.fromDer(t.body); return i.publicKeyFromAsn1(s); }, i.publicKeyToPem = function (e, t) { var r = { type: "PUBLIC KEY", body: n.toDer(i.publicKeyToAsn1(e)).getBytes() }; return a.pem.encode(r, { maxline: t }); }, i.publicKeyToRSAPublicKeyPem = function (e, t) { var r = { type: "RSA PUBLIC KEY", body: n.toDer(i.publicKeyToRSAPublicKey(e)).getBytes() }; return a.pem.encode(r, { maxline: t }); }, i.getPublicKeyFingerprint = function (e, t) { var r, s = (t = t || {}).md || a.md.sha1.create(); switch (t.type || "RSAPublicKey") { case "RSAPublicKey": r = n.toDer(i.publicKeyToRSAPublicKey(e)).getBytes(); break; case "SubjectPublicKeyInfo": r = n.toDer(i.publicKeyToAsn1(e)).getBytes(); break; default: throw new Error('Unknown fingerprint type "' + t.type + '".'); } s.start(), s.update(r); var o = s.digest(); if ("hex" === t.encoding) { var c = o.toHex(); return t.delimiter ? c.match(/.{2}/g).join(t.delimiter) : c; } if ("binary" === t.encoding) return o.getBytes(); if (t.encoding) throw new Error('Unknown encoding "' + t.encoding + '".'); return o; }, i.certificationRequestFromPem = function (e, t, r) { var s = a.pem.decode(e)[0]; if ("CERTIFICATE REQUEST" !== s.type) { var o = new Error('Could not convert certification request from PEM; PEM header type is not "CERTIFICATE REQUEST".'); throw o.headerType = s.type, o; } if (s.procType && "ENCRYPTED" === s.procType.type) throw new Error("Could not convert certification request from PEM; PEM is encrypted."); var c = n.fromDer(s.body, r); return i.certificationRequestFromAsn1(c, t); }, i.certificationRequestToPem = function (e, t) { var r = { type: "CERTIFICATE REQUEST", body: n.toDer(i.certificationRequestToAsn1(e)).getBytes() }; return a.pem.encode(r, { maxline: t }); }, i.createCertificate = function () { var e = { version: 2, serialNumber: "00", signatureOid: null, signature: null, siginfo: {} }; return e.siginfo.algorithmOid = null, e.validity = {}, e.validity.notBefore = new Date(), e.validity.notAfter = new Date(), e.issuer = {}, e.issuer.getField = function (t) { return h(e.issuer, t); }, e.issuer.addField = function (t) { g([t]), e.issuer.attributes.push(t); }, e.issuer.attributes = [], e.issuer.hash = null, e.subject = {}, e.subject.getField = function (t) { return h(e.subject, t); }, e.subject.addField = function (t) { g([t]), e.subject.attributes.push(t); }, e.subject.attributes = [], e.subject.hash = null, e.extensions = [], e.publicKey = null, e.md = null, e.setSubject = function (t, r) { g(t), e.subject.attributes = t, delete e.subject.uniqueId, r && (e.subject.uniqueId = r), e.subject.hash = null; }, e.setIssuer = function (t, r) { g(t), e.issuer.attributes = t, delete e.issuer.uniqueId, r && (e.issuer.uniqueId = r), e.issuer.hash = null; }, e.setExtensions = function (t) { for (var r = 0; r < t.length; ++r) m(t[r], { cert: e }); e.extensions = t; }, e.getExtension = function (t) { "string" == typeof t && (t = { name: t }); for (var r, a = null, n = 0; null === a && n < e.extensions.length; ++n) r = e.extensions[n], (t.id && r.id === t.id || t.name && r.name === t.name) && (a = r); return a; }, e.sign = function (t, r) { e.md = r || a.md.sha1.create(); var o = s[e.md.algorithm + "WithRSAEncryption"]; if (!o) { var c = new Error("Could not compute certificate digest. Unknown message digest algorithm OID."); throw c.algorithm = e.md.algorithm, c; } e.signatureOid = e.siginfo.algorithmOid = o, e.tbsCertificate = i.getTBSCertificate(e); var u = n.toDer(e.tbsCertificate); e.md.update(u.getBytes()), e.signature = t.sign(e.md); }, e.verify = function (t) { var r = !1; if (!e.issued(t)) { var o = t.issuer, c = e.subject; throw (y = new Error("The parent certificate did not issue the given child certificate; the child certificate's issuer does not match the parent's subject.")).expectedIssuer = o.attributes, y.actualIssuer = c.attributes, y; } var u = t.md; if (null === u) { if (t.signatureOid in s) switch (s[t.signatureOid]) { case "sha1WithRSAEncryption": u = a.md.sha1.create(); break; case "md5WithRSAEncryption": u = a.md.md5.create(); break; case "sha256WithRSAEncryption": u = a.md.sha256.create(); break; case "sha384WithRSAEncryption": u = a.md.sha384.create(); break; case "sha512WithRSAEncryption": u = a.md.sha512.create(); break; case "RSASSA-PSS": u = a.md.sha256.create(); } if (null === u) throw (y = new Error("Could not compute certificate digest. Unknown signature OID.")).signatureOid = t.signatureOid, y; var l = t.tbsCertificate || i.getTBSCertificate(t), p = n.toDer(l); u.update(p.getBytes()); } if (null !== u) { var f; switch (t.signatureOid) { case s.sha1WithRSAEncryption: f = void 0; break; case s["RSASSA-PSS"]: var h, d, y; if (void 0 === (h = s[t.signatureParameters.mgf.hash.algorithmOid]) || void 0 === a.md[h]) throw (y = new Error("Unsupported MGF hash function.")).oid = t.signatureParameters.mgf.hash.algorithmOid, y.name = h, y; if (void 0 === (d = s[t.signatureParameters.mgf.algorithmOid]) || void 0 === a.mgf[d]) throw (y = new Error("Unsupported MGF function.")).oid = t.signatureParameters.mgf.algorithmOid, y.name = d, y; if (d = a.mgf[d].create(a.md[h].create()), void 0 === (h = s[t.signatureParameters.hash.algorithmOid]) || void 0 === a.md[h]) throw { message: "Unsupported RSASSA-PSS hash function.", oid: t.signatureParameters.hash.algorithmOid, name: h }; f = a.pss.create(a.md[h].create(), d, t.signatureParameters.saltLength); } r = e.publicKey.verify(u.digest().getBytes(), t.signature, f); } return r; }, e.isIssuer = function (t) { var r = !1, a = e.issuer, n = t.subject; if (a.hash && n.hash) r = a.hash === n.hash;else if (a.attributes.length === n.attributes.length) { var i, s; r = !0; for (var o = 0; r && o < a.attributes.length; ++o) i = a.attributes[o], s = n.attributes[o], i.type === s.type && i.value === s.value || (r = !1); } return r; }, e.issued = function (t) { return t.isIssuer(e); }, e.generateSubjectKeyIdentifier = function () { return i.getPublicKeyFingerprint(e.publicKey, { type: "RSAPublicKey" }); }, e.verifySubjectKeyIdentifier = function () { for (var t = s.subjectKeyIdentifier, r = 0; r < e.extensions.length; ++r) { var n = e.extensions[r]; if (n.id === t) { var i = e.generateSubjectKeyIdentifier().getBytes(); return a.util.hexToBytes(n.subjectKeyIdentifier) === i; } } return !1; }, e; }, i.certificateFromAsn1 = function (e, t) { var r = {}, o = []; if (!n.validate(e, u, r, o)) throw (f = new Error("Cannot read X.509 certificate. ASN.1 object is not an X509v3 Certificate.")).errors = o, f; if (n.derToOid(r.publicKeyOid) !== i.oids.rsaEncryption) throw new Error("Cannot read public key. OID is not RSA."); var c = i.createCertificate(); c.version = r.certVersion ? r.certVersion.charCodeAt(0) : 0; var l = a.util.createBuffer(r.certSerialNumber); c.serialNumber = l.toHex(), c.signatureOid = a.asn1.derToOid(r.certSignatureOid), c.signatureParameters = d(c.signatureOid, r.certSignatureParams, !0), c.siginfo.algorithmOid = a.asn1.derToOid(r.certinfoSignatureOid), c.siginfo.parameters = d(c.siginfo.algorithmOid, r.certinfoSignatureParams, !1), c.signature = r.certSignature; var p = []; if (void 0 !== r.certValidity1UTCTime && p.push(n.utcTimeToDate(r.certValidity1UTCTime)), void 0 !== r.certValidity2GeneralizedTime && p.push(n.generalizedTimeToDate(r.certValidity2GeneralizedTime)), void 0 !== r.certValidity3UTCTime && p.push(n.utcTimeToDate(r.certValidity3UTCTime)), void 0 !== r.certValidity4GeneralizedTime && p.push(n.generalizedTimeToDate(r.certValidity4GeneralizedTime)), p.length > 2) throw new Error("Cannot read notBefore/notAfter validity times; more than two times were provided in the certificate."); if (p.length < 2) throw new Error("Cannot read notBefore/notAfter validity times; they were not provided as either UTCTime or GeneralizedTime."); if (c.validity.notBefore = p[0], c.validity.notAfter = p[1], c.tbsCertificate = r.tbsCertificate, t) { var f; if (c.md = null, c.signatureOid in s) switch (s[c.signatureOid]) { case "sha1WithRSAEncryption": c.md = a.md.sha1.create(); break; case "md5WithRSAEncryption": c.md = a.md.md5.create(); break; case "sha256WithRSAEncryption": c.md = a.md.sha256.create(); break; case "sha384WithRSAEncryption": c.md = a.md.sha384.create(); break; case "sha512WithRSAEncryption": c.md = a.md.sha512.create(); break; case "RSASSA-PSS": c.md = a.md.sha256.create(); } if (null === c.md) throw (f = new Error("Could not compute certificate digest. Unknown signature OID.")).signatureOid = c.signatureOid, f; var y = n.toDer(c.tbsCertificate); c.md.update(y.getBytes()); } var m = a.md.sha1.create(); c.issuer.getField = function (e) { return h(c.issuer, e); }, c.issuer.addField = function (e) { g([e]), c.issuer.attributes.push(e); }, c.issuer.attributes = i.RDNAttributesAsArray(r.certIssuer, m), r.certIssuerUniqueId && (c.issuer.uniqueId = r.certIssuerUniqueId), c.issuer.hash = m.digest().toHex(); var v = a.md.sha1.create(); return c.subject.getField = function (e) { return h(c.subject, e); }, c.subject.addField = function (e) { g([e]), c.subject.attributes.push(e); }, c.subject.attributes = i.RDNAttributesAsArray(r.certSubject, v), r.certSubjectUniqueId && (c.subject.uniqueId = r.certSubjectUniqueId), c.subject.hash = v.digest().toHex(), r.certExtensions ? c.extensions = i.certificateExtensionsFromAsn1(r.certExtensions) : c.extensions = [], c.publicKey = i.publicKeyFromAsn1(r.subjectPublicKeyInfo), c; }, i.certificateExtensionsFromAsn1 = function (e) { for (var t = [], r = 0; r < e.value.length; ++r) for (var a = e.value[r], n = 0; n < a.value.length; ++n) t.push(i.certificateExtensionFromAsn1(a.value[n])); return t; }, i.certificateExtensionFromAsn1 = function (e) { var t = {}; if (t.id = n.derToOid(e.value[0].value), t.critical = !1, e.value[1].type === n.Type.BOOLEAN ? (t.critical = 0 !== e.value[1].value.charCodeAt(0), t.value = e.value[2].value) : t.value = e.value[1].value, t.id in s) if (t.name = s[t.id], "keyUsage" === t.name) { var r = 0, i = 0; (c = n.fromDer(t.value)).value.length > 1 && (r = c.value.charCodeAt(1), i = c.value.length > 2 ? c.value.charCodeAt(2) : 0), t.digitalSignature = 128 == (128 & r), t.nonRepudiation = 64 == (64 & r), t.keyEncipherment = 32 == (32 & r), t.dataEncipherment = 16 == (16 & r), t.keyAgreement = 8 == (8 & r), t.keyCertSign = 4 == (4 & r), t.cRLSign = 2 == (2 & r), t.encipherOnly = 1 == (1 & r), t.decipherOnly = 128 == (128 & i); } else if ("basicConstraints" === t.name) { (c = n.fromDer(t.value)).value.length > 0 && c.value[0].type === n.Type.BOOLEAN ? t.cA = 0 !== c.value[0].value.charCodeAt(0) : t.cA = !1; var o = null; c.value.length > 0 && c.value[0].type === n.Type.INTEGER ? o = c.value[0].value : c.value.length > 1 && (o = c.value[1].value), null !== o && (t.pathLenConstraint = n.derToInteger(o)); } else if ("extKeyUsage" === t.name) for (var c = n.fromDer(t.value), u = 0; u < c.value.length; ++u) { var l = n.derToOid(c.value[u].value); l in s ? t[s[l]] = !0 : t[l] = !0; } else if ("nsCertType" === t.name) { r = 0; (c = n.fromDer(t.value)).value.length > 1 && (r = c.value.charCodeAt(1)), t.client = 128 == (128 & r), t.server = 64 == (64 & r), t.email = 32 == (32 & r), t.objsign = 16 == (16 & r), t.reserved = 8 == (8 & r), t.sslCA = 4 == (4 & r), t.emailCA = 2 == (2 & r), t.objCA = 1 == (1 & r); } else if ("subjectAltName" === t.name || "issuerAltName" === t.name) { var p; t.altNames = []; c = n.fromDer(t.value); for (var f = 0; f < c.value.length; ++f) { var h = { type: (p = c.value[f]).type, value: p.value }; switch (t.altNames.push(h), p.type) { case 1: case 2: case 6: break; case 7: h.ip = a.util.bytesToIP(p.value); break; case 8: h.oid = n.derToOid(p.value); } } } else if ("subjectKeyIdentifier" === t.name) { c = n.fromDer(t.value); t.subjectKeyIdentifier = a.util.bytesToHex(c.value); } return t; }, i.certificationRequestFromAsn1 = function (e, t) { var r = {}, o = []; if (!n.validate(e, f, r, o)) throw (u = new Error("Cannot read PKCS#10 certificate request. ASN.1 object is not a PKCS#10 CertificationRequest.")).errors = o, u; if (n.derToOid(r.publicKeyOid) !== i.oids.rsaEncryption) throw new Error("Cannot read public key. OID is not RSA."); var c = i.createCertificationRequest(); if (c.version = r.csrVersion ? r.csrVersion.charCodeAt(0) : 0, c.signatureOid = a.asn1.derToOid(r.csrSignatureOid), c.signatureParameters = d(c.signatureOid, r.csrSignatureParams, !0), c.siginfo.algorithmOid = a.asn1.derToOid(r.csrSignatureOid), c.siginfo.parameters = d(c.siginfo.algorithmOid, r.csrSignatureParams, !1), c.signature = r.csrSignature, c.certificationRequestInfo = r.certificationRequestInfo, t) { var u; if (c.md = null, c.signatureOid in s) switch (s[c.signatureOid]) { case "sha1WithRSAEncryption": c.md = a.md.sha1.create(); break; case "md5WithRSAEncryption": c.md = a.md.md5.create(); break; case "sha256WithRSAEncryption": c.md = a.md.sha256.create(); break; case "sha384WithRSAEncryption": c.md = a.md.sha384.create(); break; case "sha512WithRSAEncryption": c.md = a.md.sha512.create(); break; case "RSASSA-PSS": c.md = a.md.sha256.create(); } if (null === c.md) throw (u = new Error("Could not compute certification request digest. Unknown signature OID.")).signatureOid = c.signatureOid, u; var l = n.toDer(c.certificationRequestInfo); c.md.update(l.getBytes()); } var p = a.md.sha1.create(); return c.subject.getField = function (e) { return h(c.subject, e); }, c.subject.addField = function (e) { g([e]), c.subject.attributes.push(e); }, c.subject.attributes = i.RDNAttributesAsArray(r.certificationRequestInfoSubject, p), c.subject.hash = p.digest().toHex(), c.publicKey = i.publicKeyFromAsn1(r.subjectPublicKeyInfo), c.getAttribute = function (e) { return h(c, e); }, c.addAttribute = function (e) { g([e]), c.attributes.push(e); }, c.attributes = i.CRIAttributesAsArray(r.certificationRequestInfoAttributes || []), c; }, i.createCertificationRequest = function () { var e = { version: 0, signatureOid: null, signature: null, siginfo: {} }; return e.siginfo.algorithmOid = null, e.subject = {}, e.subject.getField = function (t) { return h(e.subject, t); }, e.subject.addField = function (t) { g([t]), e.subject.attributes.push(t); }, e.subject.attributes = [], e.subject.hash = null, e.publicKey = null, e.attributes = [], e.getAttribute = function (t) { return h(e, t); }, e.addAttribute = function (t) { g([t]), e.attributes.push(t); }, e.md = null, e.setSubject = function (t) { g(t), e.subject.attributes = t, e.subject.hash = null; }, e.setAttributes = function (t) { g(t), e.attributes = t; }, e.sign = function (t, r) { e.md = r || a.md.sha1.create(); var o = s[e.md.algorithm + "WithRSAEncryption"]; if (!o) { var c = new Error("Could not compute certification request digest. Unknown message digest algorithm OID."); throw c.algorithm = e.md.algorithm, c; } e.signatureOid = e.siginfo.algorithmOid = o, e.certificationRequestInfo = i.getCertificationRequestInfo(e); var u = n.toDer(e.certificationRequestInfo); e.md.update(u.getBytes()), e.signature = t.sign(e.md); }, e.verify = function () { var t = !1, r = e.md; if (null === r) { if (e.signatureOid in s) switch (s[e.signatureOid]) { case "sha1WithRSAEncryption": r = a.md.sha1.create(); break; case "md5WithRSAEncryption": r = a.md.md5.create(); break; case "sha256WithRSAEncryption": r = a.md.sha256.create(); break; case "sha384WithRSAEncryption": r = a.md.sha384.create(); break; case "sha512WithRSAEncryption": r = a.md.sha512.create(); break; case "RSASSA-PSS": r = a.md.sha256.create(); } if (null === r) throw (f = new Error("Could not compute certification request digest. Unknown signature OID.")).signatureOid = e.signatureOid, f; var o = e.certificationRequestInfo || i.getCertificationRequestInfo(e), c = n.toDer(o); r.update(c.getBytes()); } if (null !== r) { var u; switch (e.signatureOid) { case s.sha1WithRSAEncryption: break; case s["RSASSA-PSS"]: var l, p, f; if (void 0 === (l = s[e.signatureParameters.mgf.hash.algorithmOid]) || void 0 === a.md[l]) throw (f = new Error("Unsupported MGF hash function.")).oid = e.signatureParameters.mgf.hash.algorithmOid, f.name = l, f; if (void 0 === (p = s[e.signatureParameters.mgf.algorithmOid]) || void 0 === a.mgf[p]) throw (f = new Error("Unsupported MGF function.")).oid = e.signatureParameters.mgf.algorithmOid, f.name = p, f; if (p = a.mgf[p].create(a.md[l].create()), void 0 === (l = s[e.signatureParameters.hash.algorithmOid]) || void 0 === a.md[l]) throw (f = new Error("Unsupported RSASSA-PSS hash function.")).oid = e.signatureParameters.hash.algorithmOid, f.name = l, f; u = a.pss.create(a.md[l].create(), p, e.signatureParameters.saltLength); } t = e.publicKey.verify(r.digest().getBytes(), e.signature, u); } return t; }, e; }; var E = new Date("1950-01-01T00:00:00Z"), S = new Date("2050-01-01T00:00:00Z"); function T(e) { return e >= E && e < S ? n.create(n.Class.UNIVERSAL, n.Type.UTCTIME, !1, n.dateToUtcTime(e)) : n.create(n.Class.UNIVERSAL, n.Type.GENERALIZEDTIME, !1, n.dateToGeneralizedTime(e)); } i.getTBSCertificate = function (e) { var t = T(e.validity.notBefore), r = T(e.validity.notAfter), s = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.CONTEXT_SPECIFIC, 0, !0, [n.create(n.Class.UNIVERSAL, n.Type.INTEGER, !1, n.integerToDer(e.version).getBytes())]), n.create(n.Class.UNIVERSAL, n.Type.INTEGER, !1, a.util.hexToBytes(e.serialNumber)), n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(e.siginfo.algorithmOid).getBytes()), v(e.siginfo.algorithmOid, e.siginfo.parameters)]), y(e.issuer), n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [t, r]), y(e.subject), i.publicKeyToAsn1(e.publicKey)]); return e.issuer.uniqueId && s.value.push(n.create(n.Class.CONTEXT_SPECIFIC, 1, !0, [n.create(n.Class.UNIVERSAL, n.Type.BITSTRING, !1, String.fromCharCode(0) + e.issuer.uniqueId)])), e.subject.uniqueId && s.value.push(n.create(n.Class.CONTEXT_SPECIFIC, 2, !0, [n.create(n.Class.UNIVERSAL, n.Type.BITSTRING, !1, String.fromCharCode(0) + e.subject.uniqueId)])), e.extensions.length > 0 && s.value.push(i.certificateExtensionsToAsn1(e.extensions)), s; }, i.getCertificationRequestInfo = function (e) { return n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.INTEGER, !1, n.integerToDer(e.version).getBytes()), y(e.subject), i.publicKeyToAsn1(e.publicKey), C(e)]); }, i.distinguishedNameToAsn1 = function (e) { return y(e); }, i.certificateToAsn1 = function (e) { var t = e.tbsCertificate || i.getTBSCertificate(e); return n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [t, n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(e.signatureOid).getBytes()), v(e.signatureOid, e.signatureParameters)]), n.create(n.Class.UNIVERSAL, n.Type.BITSTRING, !1, String.fromCharCode(0) + e.signature)]); }, i.certificateExtensionsToAsn1 = function (e) { var t = n.create(n.Class.CONTEXT_SPECIFIC, 3, !0, []), r = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, []); t.value.push(r); for (var a = 0; a < e.length; ++a) r.value.push(i.certificateExtensionToAsn1(e[a])); return t; }, i.certificateExtensionToAsn1 = function (e) { var t = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, []); t.value.push(n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(e.id).getBytes())), e.critical && t.value.push(n.create(n.Class.UNIVERSAL, n.Type.BOOLEAN, !1, String.fromCharCode(255))); var r = e.value; return "string" != typeof e.value && (r = n.toDer(r).getBytes()), t.value.push(n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, r)), t; }, i.certificationRequestToAsn1 = function (e) { var t = e.certificationRequestInfo || i.getCertificationRequestInfo(e); return n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [t, n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(e.signatureOid).getBytes()), v(e.signatureOid, e.signatureParameters)]), n.create(n.Class.UNIVERSAL, n.Type.BITSTRING, !1, String.fromCharCode(0) + e.signature)]); }, i.createCaStore = function (e) { var t = { certs: {} }; function r(e) { return s(e), t.certs[e.hash] || null; } function s(e) { if (!e.hash) { var t = a.md.sha1.create(); e.attributes = i.RDNAttributesAsArray(y(e), t), e.hash = t.digest().toHex(); } } if (t.getIssuer = function (e) { return r(e.issuer); }, t.addCertificate = function (e) { if ("string" == typeof e && (e = a.pki.certificateFromPem(e)), s(e.subject), !t.hasCertificate(e)) if (e.subject.hash in t.certs) { var r = t.certs[e.subject.hash]; a.util.isArray(r) || (r = [r]), r.push(e), t.certs[e.subject.hash] = r; } else t.certs[e.subject.hash] = e; }, t.hasCertificate = function (e) { "string" == typeof e && (e = a.pki.certificateFromPem(e)); var t = r(e.subject); if (!t) return !1; a.util.isArray(t) || (t = [t]); for (var s = n.toDer(i.certificateToAsn1(e)).getBytes(), o = 0; o < t.length; ++o) { if (s === n.toDer(i.certificateToAsn1(t[o])).getBytes()) return !0; } return !1; }, t.listAllCertificates = function () { var e = []; for (var r in t.certs) if (t.certs.hasOwnProperty(r)) { var n = t.certs[r]; if (a.util.isArray(n)) for (var i = 0; i < n.length; ++i) e.push(n[i]);else e.push(n); } return e; }, t.removeCertificate = function (e) { var o; if ("string" == typeof e && (e = a.pki.certificateFromPem(e)), s(e.subject), !t.hasCertificate(e)) return null; var c = r(e.subject); if (!a.util.isArray(c)) return o = t.certs[e.subject.hash], delete t.certs[e.subject.hash], o; for (var u = n.toDer(i.certificateToAsn1(e)).getBytes(), l = 0; l < c.length; ++l) { u === n.toDer(i.certificateToAsn1(c[l])).getBytes() && (o = c[l], c.splice(l, 1)); } return 0 === c.length && delete t.certs[e.subject.hash], o; }, e) for (var o = 0; o < e.length; ++o) { var c = e[o]; t.addCertificate(c); } return t; }, i.certificateError = { bad_certificate: "forge.pki.BadCertificate", unsupported_certificate: "forge.pki.UnsupportedCertificate", certificate_revoked: "forge.pki.CertificateRevoked", certificate_expired: "forge.pki.CertificateExpired", certificate_unknown: "forge.pki.CertificateUnknown", unknown_ca: "forge.pki.UnknownCertificateAuthority" }, i.verifyCertificateChain = function (e, t, r) { "function" == typeof r && (r = { verify: r }), r = r || {}; var n = (t = t.slice(0)).slice(0), s = r.validityCheckDate; void 0 === s && (s = new Date()); var o = !0, c = null, u = 0; do { var l = t.shift(), p = null, f = !1; if (s && (s < l.validity.notBefore || s > l.validity.notAfter) && (c = { message: "Certificate is not valid yet or has expired.", error: i.certificateError.certificate_expired, notBefore: l.validity.notBefore, notAfter: l.validity.notAfter, now: s }), null === c) { if (null === (p = t[0] || e.getIssuer(l)) && l.isIssuer(l) && (f = !0, p = l), p) { var h = p; a.util.isArray(h) || (h = [h]); for (var d = !1; !d && h.length > 0;) { p = h.shift(); try { d = p.verify(l); } catch (e) {} } d || (c = { message: "Certificate signature is invalid.", error: i.certificateError.bad_certificate }); } null !== c || p && !f || e.hasCertificate(l) || (c = { message: "Certificate is not trusted.", error: i.certificateError.unknown_ca }); } if (null === c && p && !l.isIssuer(p) && (c = { message: "Certificate issuer is invalid.", error: i.certificateError.bad_certificate }), null === c) for (var y = { keyUsage: !0, basicConstraints: !0 }, g = 0; null === c && g < l.extensions.length; ++g) { var m = l.extensions[g]; m.critical && !(m.name in y) && (c = { message: "Certificate has an unsupported critical extension.", error: i.certificateError.unsupported_certificate }); } if (null === c && (!o || 0 === t.length && (!p || f))) { var v = l.getExtension("basicConstraints"), C = l.getExtension("keyUsage"); if (null !== C && (C.keyCertSign && null !== v || (c = { message: "Certificate keyUsage or basicConstraints conflict or indicate that the certificate is not a CA. If the certificate is the only one in the chain or isn't the first then the certificate must be a valid CA.", error: i.certificateError.bad_certificate })), null !== c || null === v || v.cA || (c = { message: "Certificate basicConstraints indicates the certificate is not a CA.", error: i.certificateError.bad_certificate }), null === c && null !== C && "pathLenConstraint" in v) u - 1 > v.pathLenConstraint && (c = { message: "Certificate basicConstraints pathLenConstraint violated.", error: i.certificateError.bad_certificate }); } var E = null === c || c.error, S = r.verify ? r.verify(E, u, n) : E; if (!0 !== S) throw !0 === E && (c = { message: "The application rejected the certificate.", error: i.certificateError.bad_certificate }), (S || 0 === S) && ("object" != typeof S || a.util.isArray(S) ? "string" == typeof S && (c.error = S) : (S.message && (c.message = S.message), S.error && (c.error = S.error))), c; c = null, o = !1, ++u; } while (t.length > 0); return !0; }; }, function (e, t, r) { var a = r(0); r(2), r(1), (e.exports = a.pss = a.pss || {}).create = function (e) { 3 === arguments.length && (e = { md: arguments[0], mgf: arguments[1], saltLength: arguments[2] }); var t, r = e.md, n = e.mgf, i = r.digestLength, s = e.salt || null; if ("string" == typeof s && (s = a.util.createBuffer(s)), "saltLength" in e) t = e.saltLength;else { if (null === s) throw new Error("Salt length not specified or specific salt not given."); t = s.length(); } if (null !== s && s.length() !== t) throw new Error("Given salt length does not match length of given salt."); var o = e.prng || a.random, c = { encode: function (e, c) { var u, l, p = c - 1, f = Math.ceil(p / 8), h = e.digest().getBytes(); if (f < i + t + 2) throw new Error("Message is too long to encrypt."); l = null === s ? o.getBytesSync(t) : s.bytes(); var d = new a.util.ByteBuffer(); d.fillWithByte(0, 8), d.putBytes(h), d.putBytes(l), r.start(), r.update(d.getBytes()); var y = r.digest().getBytes(), g = new a.util.ByteBuffer(); g.fillWithByte(0, f - t - i - 2), g.putByte(1), g.putBytes(l); var m = g.getBytes(), v = f - i - 1, C = n.generate(y, v), E = ""; for (u = 0; u < v; u++) E += String.fromCharCode(m.charCodeAt(u) ^ C.charCodeAt(u)); var S = 65280 >> 8 * f - p & 255; return (E = String.fromCharCode(E.charCodeAt(0) & ~S) + E.substr(1)) + y + String.fromCharCode(188); }, verify: function (e, s, o) { var c, u = o - 1, l = Math.ceil(u / 8); if (s = s.substr(-l), l < i + t + 2) throw new Error("Inconsistent parameters to PSS signature verification."); if (188 !== s.charCodeAt(l - 1)) throw new Error("Encoded message does not end in 0xBC."); var p = l - i - 1, f = s.substr(0, p), h = s.substr(p, i), d = 65280 >> 8 * l - u & 255; if (0 != (f.charCodeAt(0) & d)) throw new Error("Bits beyond keysize not zero as expected."); var y = n.generate(h, p), g = ""; for (c = 0; c < p; c++) g += String.fromCharCode(f.charCodeAt(c) ^ y.charCodeAt(c)); g = String.fromCharCode(g.charCodeAt(0) & ~d) + g.substr(1); var m = l - i - t - 2; for (c = 0; c < m; c++) if (0 !== g.charCodeAt(c)) throw new Error("Leftmost octets not zero as expected"); if (1 !== g.charCodeAt(m)) throw new Error("Inconsistent PSS signature, 0x01 marker not found"); var v = g.substr(-t), C = new a.util.ByteBuffer(); return C.fillWithByte(0, 8), C.putBytes(e), C.putBytes(v), r.start(), r.update(C.getBytes()), h === r.digest().getBytes(); } }; return c; }; }, function (e, t, r) { var a = r(0); r(1), a.cipher = a.cipher || {}; var n = e.exports = a.cipher.modes = a.cipher.modes || {}; function i(e, t) { if ("string" == typeof e && (e = a.util.createBuffer(e)), a.util.isArray(e) && e.length > 4) { var r = e; e = a.util.createBuffer(); for (var n = 0; n < r.length; ++n) e.putByte(r[n]); } if (e.length() < t) throw new Error("Invalid IV length; got " + e.length() + " bytes and expected " + t + " bytes."); if (!a.util.isArray(e)) { var i = [], s = t / 4; for (n = 0; n < s; ++n) i.push(e.getInt32()); e = i; } return e; } function s(e) { e[e.length - 1] = e[e.length - 1] + 1 & 4294967295; } function o(e) { return [e / 4294967296 | 0, 4294967295 & e]; } n.ecb = function (e) { e = e || {}, this.name = "ECB", this.cipher = e.cipher, this.blockSize = e.blockSize || 16, this._ints = this.blockSize / 4, this._inBlock = new Array(this._ints), this._outBlock = new Array(this._ints); }, n.ecb.prototype.start = function (e) {}, n.ecb.prototype.encrypt = function (e, t, r) { if (e.length() < this.blockSize && !(r && e.length() > 0)) return !0; for (var a = 0; a < this._ints; ++a) this._inBlock[a] = e.getInt32(); this.cipher.encrypt(this._inBlock, this._outBlock); for (a = 0; a < this._ints; ++a) t.putInt32(this._outBlock[a]); }, n.ecb.prototype.decrypt = function (e, t, r) { if (e.length() < this.blockSize && !(r && e.length() > 0)) return !0; for (var a = 0; a < this._ints; ++a) this._inBlock[a] = e.getInt32(); this.cipher.decrypt(this._inBlock, this._outBlock); for (a = 0; a < this._ints; ++a) t.putInt32(this._outBlock[a]); }, n.ecb.prototype.pad = function (e, t) { var r = e.length() === this.blockSize ? this.blockSize : this.blockSize - e.length(); return e.fillWithByte(r, r), !0; }, n.ecb.prototype.unpad = function (e, t) { if (t.overflow > 0) return !1; var r = e.length(), a = e.at(r - 1); return !(a > this.blockSize << 2) && (e.truncate(a), !0); }, n.cbc = function (e) { e = e || {}, this.name = "CBC", this.cipher = e.cipher, this.blockSize = e.blockSize || 16, this._ints = this.blockSize / 4, this._inBlock = new Array(this._ints), this._outBlock = new Array(this._ints); }, n.cbc.prototype.start = function (e) { if (null === e.iv) { if (!this._prev) throw new Error("Invalid IV parameter."); this._iv = this._prev.slice(0); } else { if (!("iv" in e)) throw new Error("Invalid IV parameter."); this._iv = i(e.iv, this.blockSize), this._prev = this._iv.slice(0); } }, n.cbc.prototype.encrypt = function (e, t, r) { if (e.length() < this.blockSize && !(r && e.length() > 0)) return !0; for (var a = 0; a < this._ints; ++a) this._inBlock[a] = this._prev[a] ^ e.getInt32(); this.cipher.encrypt(this._inBlock, this._outBlock); for (a = 0; a < this._ints; ++a) t.putInt32(this._outBlock[a]); this._prev = this._outBlock; }, n.cbc.prototype.decrypt = function (e, t, r) { if (e.length() < this.blockSize && !(r && e.length() > 0)) return !0; for (var a = 0; a < this._ints; ++a) this._inBlock[a] = e.getInt32(); this.cipher.decrypt(this._inBlock, this._outBlock); for (a = 0; a < this._ints; ++a) t.putInt32(this._prev[a] ^ this._outBlock[a]); this._prev = this._inBlock.slice(0); }, n.cbc.prototype.pad = function (e, t) { var r = e.length() === this.blockSize ? this.blockSize : this.blockSize - e.length(); return e.fillWithByte(r, r), !0; }, n.cbc.prototype.unpad = function (e, t) { if (t.overflow > 0) return !1; var r = e.length(), a = e.at(r - 1); return !(a > this.blockSize << 2) && (e.truncate(a), !0); }, n.cfb = function (e) { e = e || {}, this.name = "CFB", this.cipher = e.cipher, this.blockSize = e.blockSize || 16, this._ints = this.blockSize / 4, this._inBlock = null, this._outBlock = new Array(this._ints), this._partialBlock = new Array(this._ints), this._partialOutput = a.util.createBuffer(), this._partialBytes = 0; }, n.cfb.prototype.start = function (e) { if (!("iv" in e)) throw new Error("Invalid IV parameter."); this._iv = i(e.iv, this.blockSize), this._inBlock = this._iv.slice(0), this._partialBytes = 0; }, n.cfb.prototype.encrypt = function (e, t, r) { var a = e.length(); if (0 === a) return !0; if (this.cipher.encrypt(this._inBlock, this._outBlock), 0 === this._partialBytes && a >= this.blockSize) for (var n = 0; n < this._ints; ++n) this._inBlock[n] = e.getInt32() ^ this._outBlock[n], t.putInt32(this._inBlock[n]);else { var i = (this.blockSize - a) % this.blockSize; i > 0 && (i = this.blockSize - i), this._partialOutput.clear(); for (n = 0; n < this._ints; ++n) this._partialBlock[n] = e.getInt32() ^ this._outBlock[n], this._partialOutput.putInt32(this._partialBlock[n]); if (i > 0) e.read -= this.blockSize;else for (n = 0; n < this._ints; ++n) this._inBlock[n] = this._partialBlock[n]; if (this._partialBytes > 0 && this._partialOutput.getBytes(this._partialBytes), i > 0 && !r) return t.putBytes(this._partialOutput.getBytes(i - this._partialBytes)), this._partialBytes = i, !0; t.putBytes(this._partialOutput.getBytes(a - this._partialBytes)), this._partialBytes = 0; } }, n.cfb.prototype.decrypt = function (e, t, r) { var a = e.length(); if (0 === a) return !0; if (this.cipher.encrypt(this._inBlock, this._outBlock), 0 === this._partialBytes && a >= this.blockSize) for (var n = 0; n < this._ints; ++n) this._inBlock[n] = e.getInt32(), t.putInt32(this._inBlock[n] ^ this._outBlock[n]);else { var i = (this.blockSize - a) % this.blockSize; i > 0 && (i = this.blockSize - i), this._partialOutput.clear(); for (n = 0; n < this._ints; ++n) this._partialBlock[n] = e.getInt32(), this._partialOutput.putInt32(this._partialBlock[n] ^ this._outBlock[n]); if (i > 0) e.read -= this.blockSize;else for (n = 0; n < this._ints; ++n) this._inBlock[n] = this._partialBlock[n]; if (this._partialBytes > 0 && this._partialOutput.getBytes(this._partialBytes), i > 0 && !r) return t.putBytes(this._partialOutput.getBytes(i - this._partialBytes)), this._partialBytes = i, !0; t.putBytes(this._partialOutput.getBytes(a - this._partialBytes)), this._partialBytes = 0; } }, n.ofb = function (e) { e = e || {}, this.name = "OFB", this.cipher = e.cipher, this.blockSize = e.blockSize || 16, this._ints = this.blockSize / 4, this._inBlock = null, this._outBlock = new Array(this._ints), this._partialOutput = a.util.createBuffer(), this._partialBytes = 0; }, n.ofb.prototype.start = function (e) { if (!("iv" in e)) throw new Error("Invalid IV parameter."); this._iv = i(e.iv, this.blockSize), this._inBlock = this._iv.slice(0), this._partialBytes = 0; }, n.ofb.prototype.encrypt = function (e, t, r) { var a = e.length(); if (0 === e.length()) return !0; if (this.cipher.encrypt(this._inBlock, this._outBlock), 0 === this._partialBytes && a >= this.blockSize) for (var n = 0; n < this._ints; ++n) t.putInt32(e.getInt32() ^ this._outBlock[n]), this._inBlock[n] = this._outBlock[n];else { var i = (this.blockSize - a) % this.blockSize; i > 0 && (i = this.blockSize - i), this._partialOutput.clear(); for (n = 0; n < this._ints; ++n) this._partialOutput.putInt32(e.getInt32() ^ this._outBlock[n]); if (i > 0) e.read -= this.blockSize;else for (n = 0; n < this._ints; ++n) this._inBlock[n] = this._outBlock[n]; if (this._partialBytes > 0 && this._partialOutput.getBytes(this._partialBytes), i > 0 && !r) return t.putBytes(this._partialOutput.getBytes(i - this._partialBytes)), this._partialBytes = i, !0; t.putBytes(this._partialOutput.getBytes(a - this._partialBytes)), this._partialBytes = 0; } }, n.ofb.prototype.decrypt = n.ofb.prototype.encrypt, n.ctr = function (e) { e = e || {}, this.name = "CTR", this.cipher = e.cipher, this.blockSize = e.blockSize || 16, this._ints = this.blockSize / 4, this._inBlock = null, this._outBlock = new Array(this._ints), this._partialOutput = a.util.createBuffer(), this._partialBytes = 0; }, n.ctr.prototype.start = function (e) { if (!("iv" in e)) throw new Error("Invalid IV parameter."); this._iv = i(e.iv, this.blockSize), this._inBlock = this._iv.slice(0), this._partialBytes = 0; }, n.ctr.prototype.encrypt = function (e, t, r) { var a = e.length(); if (0 === a) return !0; if (this.cipher.encrypt(this._inBlock, this._outBlock), 0 === this._partialBytes && a >= this.blockSize) for (var n = 0; n < this._ints; ++n) t.putInt32(e.getInt32() ^ this._outBlock[n]);else { var i = (this.blockSize - a) % this.blockSize; i > 0 && (i = this.blockSize - i), this._partialOutput.clear(); for (n = 0; n < this._ints; ++n) this._partialOutput.putInt32(e.getInt32() ^ this._outBlock[n]); if (i > 0 && (e.read -= this.blockSize), this._partialBytes > 0 && this._partialOutput.getBytes(this._partialBytes), i > 0 && !r) return t.putBytes(this._partialOutput.getBytes(i - this._partialBytes)), this._partialBytes = i, !0; t.putBytes(this._partialOutput.getBytes(a - this._partialBytes)), this._partialBytes = 0; } s(this._inBlock); }, n.ctr.prototype.decrypt = n.ctr.prototype.encrypt, n.gcm = function (e) { e = e || {}, this.name = "GCM", this.cipher = e.cipher, this.blockSize = e.blockSize || 16, this._ints = this.blockSize / 4, this._inBlock = new Array(this._ints), this._outBlock = new Array(this._ints), this._partialOutput = a.util.createBuffer(), this._partialBytes = 0, this._R = 3774873600; }, n.gcm.prototype.start = function (e) { if (!("iv" in e)) throw new Error("Invalid IV parameter."); var t, r = a.util.createBuffer(e.iv); if (this._cipherLength = 0, t = "additionalData" in e ? a.util.createBuffer(e.additionalData) : a.util.createBuffer(), this._tagLength = "tagLength" in e ? e.tagLength : 128, this._tag = null, e.decrypt && (this._tag = a.util.createBuffer(e.tag).getBytes(), this._tag.length !== this._tagLength / 8)) throw new Error("Authentication tag does not match tag length."); this._hashBlock = new Array(this._ints), this.tag = null, this._hashSubkey = new Array(this._ints), this.cipher.encrypt([0, 0, 0, 0], this._hashSubkey), this.componentBits = 4, this._m = this.generateHashTable(this._hashSubkey, this.componentBits); var n = r.length(); if (12 === n) this._j0 = [r.getInt32(), r.getInt32(), r.getInt32(), 1];else { for (this._j0 = [0, 0, 0, 0]; r.length() > 0;) this._j0 = this.ghash(this._hashSubkey, this._j0, [r.getInt32(), r.getInt32(), r.getInt32(), r.getInt32()]); this._j0 = this.ghash(this._hashSubkey, this._j0, [0, 0].concat(o(8 * n))); } this._inBlock = this._j0.slice(0), s(this._inBlock), this._partialBytes = 0, t = a.util.createBuffer(t), this._aDataLength = o(8 * t.length()); var i = t.length() % this.blockSize; for (i && t.fillWithByte(0, this.blockSize - i), this._s = [0, 0, 0, 0]; t.length() > 0;) this._s = this.ghash(this._hashSubkey, this._s, [t.getInt32(), t.getInt32(), t.getInt32(), t.getInt32()]); }, n.gcm.prototype.encrypt = function (e, t, r) { var a = e.length(); if (0 === a) return !0; if (this.cipher.encrypt(this._inBlock, this._outBlock), 0 === this._partialBytes && a >= this.blockSize) { for (var n = 0; n < this._ints; ++n) t.putInt32(this._outBlock[n] ^= e.getInt32()); this._cipherLength += this.blockSize; } else { var i = (this.blockSize - a) % this.blockSize; i > 0 && (i = this.blockSize - i), this._partialOutput.clear(); for (n = 0; n < this._ints; ++n) this._partialOutput.putInt32(e.getInt32() ^ this._outBlock[n]); if (i <= 0 || r) { if (r) { var o = a % this.blockSize; this._cipherLength += o, this._partialOutput.truncate(this.blockSize - o); } else this._cipherLength += this.blockSize; for (n = 0; n < this._ints; ++n) this._outBlock[n] = this._partialOutput.getInt32(); this._partialOutput.read -= this.blockSize; } if (this._partialBytes > 0 && this._partialOutput.getBytes(this._partialBytes), i > 0 && !r) return e.read -= this.blockSize, t.putBytes(this._partialOutput.getBytes(i - this._partialBytes)), this._partialBytes = i, !0; t.putBytes(this._partialOutput.getBytes(a - this._partialBytes)), this._partialBytes = 0; } this._s = this.ghash(this._hashSubkey, this._s, this._outBlock), s(this._inBlock); }, n.gcm.prototype.decrypt = function (e, t, r) { var a = e.length(); if (a < this.blockSize && !(r && a > 0)) return !0; this.cipher.encrypt(this._inBlock, this._outBlock), s(this._inBlock), this._hashBlock[0] = e.getInt32(), this._hashBlock[1] = e.getInt32(), this._hashBlock[2] = e.getInt32(), this._hashBlock[3] = e.getInt32(), this._s = this.ghash(this._hashSubkey, this._s, this._hashBlock); for (var n = 0; n < this._ints; ++n) t.putInt32(this._outBlock[n] ^ this._hashBlock[n]); a < this.blockSize ? this._cipherLength += a % this.blockSize : this._cipherLength += this.blockSize; }, n.gcm.prototype.afterFinish = function (e, t) { var r = !0; t.decrypt && t.overflow && e.truncate(this.blockSize - t.overflow), this.tag = a.util.createBuffer(); var n = this._aDataLength.concat(o(8 * this._cipherLength)); this._s = this.ghash(this._hashSubkey, this._s, n); var i = []; this.cipher.encrypt(this._j0, i); for (var s = 0; s < this._ints; ++s) this.tag.putInt32(this._s[s] ^ i[s]); return this.tag.truncate(this.tag.length() % (this._tagLength / 8)), t.decrypt && this.tag.bytes() !== this._tag && (r = !1), r; }, n.gcm.prototype.multiply = function (e, t) { for (var r = [0, 0, 0, 0], a = t.slice(0), n = 0; n < 128; ++n) { e[n / 32 | 0] & 1 << 31 - n % 32 && (r[0] ^= a[0], r[1] ^= a[1], r[2] ^= a[2], r[3] ^= a[3]), this.pow(a, a); } return r; }, n.gcm.prototype.pow = function (e, t) { for (var r = 1 & e[3], a = 3; a > 0; --a) t[a] = e[a] >>> 1 | (1 & e[a - 1]) << 31; t[0] = e[0] >>> 1, r && (t[0] ^= this._R); }, n.gcm.prototype.tableMultiply = function (e) { for (var t = [0, 0, 0, 0], r = 0; r < 32; ++r) { var a = e[r / 8 | 0] >>> 4 * (7 - r % 8) & 15, n = this._m[r][a]; t[0] ^= n[0], t[1] ^= n[1], t[2] ^= n[2], t[3] ^= n[3]; } return t; }, n.gcm.prototype.ghash = function (e, t, r) { return t[0] ^= r[0], t[1] ^= r[1], t[2] ^= r[2], t[3] ^= r[3], this.tableMultiply(t); }, n.gcm.prototype.generateHashTable = function (e, t) { for (var r = 8 / t, a = 4 * r, n = 16 * r, i = new Array(n), s = 0; s < n; ++s) { var o = [0, 0, 0, 0], c = (a - 1 - s % a) * t; o[s / a | 0] = 1 << t - 1 << c, i[s] = this.generateSubHashTable(this.multiply(o, e), t); } return i; }, n.gcm.prototype.generateSubHashTable = function (e, t) { var r = 1 << t, a = r >>> 1, n = new Array(r); n[a] = e.slice(0); for (var i = a >>> 1; i > 0;) this.pow(n[2 * i], n[i] = []), i >>= 1; for (i = 2; i < a;) { for (var s = 1; s < i; ++s) { var o = n[i], c = n[s]; n[i + s] = [o[0] ^ c[0], o[1] ^ c[1], o[2] ^ c[2], o[3] ^ c[3]]; } i *= 2; } for (n[0] = [0, 0, 0, 0], i = a + 1; i < r; ++i) { var u = n[i ^ a]; n[i] = [e[0] ^ u[0], e[1] ^ u[1], e[2] ^ u[2], e[3] ^ u[3]]; } return n; }; }, function (e, t, r) { var a = r(0); r(3), r(8), r(14), r(7), r(21), r(2), r(9), r(1); var n = function (e, t, r, n) { var i = a.util.createBuffer(), s = e.length >> 1, o = s + (1 & e.length), c = e.substr(0, o), u = e.substr(s, o), l = a.util.createBuffer(), p = a.hmac.create(); r = t + r; var f = Math.ceil(n / 16), h = Math.ceil(n / 20); p.start("MD5", c); var d = a.util.createBuffer(); l.putBytes(r); for (var y = 0; y < f; ++y) p.start(null, null), p.update(l.getBytes()), l.putBuffer(p.digest()), p.start(null, null), p.update(l.bytes() + r), d.putBuffer(p.digest()); p.start("SHA1", u); var g = a.util.createBuffer(); l.clear(), l.putBytes(r); for (y = 0; y < h; ++y) p.start(null, null), p.update(l.getBytes()), l.putBuffer(p.digest()), p.start(null, null), p.update(l.bytes() + r), g.putBuffer(p.digest()); return i.putBytes(a.util.xorBytes(d.getBytes(), g.getBytes(), n)), i; }, i = function (e, t, r) { var n = !1; try { var i = e.deflate(t.fragment.getBytes()); t.fragment = a.util.createBuffer(i), t.length = i.length, n = !0; } catch (e) {} return n; }, s = function (e, t, r) { var n = !1; try { var i = e.inflate(t.fragment.getBytes()); t.fragment = a.util.createBuffer(i), t.length = i.length, n = !0; } catch (e) {} return n; }, o = function (e, t) { var r = 0; switch (t) { case 1: r = e.getByte(); break; case 2: r = e.getInt16(); break; case 3: r = e.getInt24(); break; case 4: r = e.getInt32(); } return a.util.createBuffer(e.getBytes(r)); }, c = function (e, t, r) { e.putInt(r.length(), t << 3), e.putBuffer(r); }, u = { Versions: { TLS_1_0: { major: 3, minor: 1 }, TLS_1_1: { major: 3, minor: 2 }, TLS_1_2: { major: 3, minor: 3 } } }; u.SupportedVersions = [u.Versions.TLS_1_1, u.Versions.TLS_1_0], u.Version = u.SupportedVersions[0], u.MaxFragment = 15360, u.ConnectionEnd = { server: 0, client: 1 }, u.PRFAlgorithm = { tls_prf_sha256: 0 }, u.BulkCipherAlgorithm = { none: null, rc4: 0, des3: 1, aes: 2 }, u.CipherType = { stream: 0, block: 1, aead: 2 }, u.MACAlgorithm = { none: null, hmac_md5: 0, hmac_sha1: 1, hmac_sha256: 2, hmac_sha384: 3, hmac_sha512: 4 }, u.CompressionMethod = { none: 0, deflate: 1 }, u.ContentType = { change_cipher_spec: 20, alert: 21, handshake: 22, application_data: 23, heartbeat: 24 }, u.HandshakeType = { hello_request: 0, client_hello: 1, server_hello: 2, certificate: 11, server_key_exchange: 12, certificate_request: 13, server_hello_done: 14, certificate_verify: 15, client_key_exchange: 16, finished: 20 }, u.Alert = {}, u.Alert.Level = { warning: 1, fatal: 2 }, u.Alert.Description = { close_notify: 0, unexpected_message: 10, bad_record_mac: 20, decryption_failed: 21, record_overflow: 22, decompression_failure: 30, handshake_failure: 40, bad_certificate: 42, unsupported_certificate: 43, certificate_revoked: 44, certificate_expired: 45, certificate_unknown: 46, illegal_parameter: 47, unknown_ca: 48, access_denied: 49, decode_error: 50, decrypt_error: 51, export_restriction: 60, protocol_version: 70, insufficient_security: 71, internal_error: 80, user_canceled: 90, no_renegotiation: 100 }, u.HeartbeatMessageType = { heartbeat_request: 1, heartbeat_response: 2 }, u.CipherSuites = {}, u.getCipherSuite = function (e) { var t = null; for (var r in u.CipherSuites) { var a = u.CipherSuites[r]; if (a.id[0] === e.charCodeAt(0) && a.id[1] === e.charCodeAt(1)) { t = a; break; } } return t; }, u.handleUnexpected = function (e, t) { !e.open && e.entity === u.ConnectionEnd.client || e.error(e, { message: "Unexpected message. Received TLS record out of order.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.unexpected_message } }); }, u.handleHelloRequest = function (e, t, r) { !e.handshaking && e.handshakes > 0 && (u.queue(e, u.createAlert(e, { level: u.Alert.Level.warning, description: u.Alert.Description.no_renegotiation })), u.flush(e)), e.process(); }, u.parseHelloMessage = function (e, t, r) { var n = null, i = e.entity === u.ConnectionEnd.client; if (r < 38) e.error(e, { message: i ? "Invalid ServerHello message. Message too short." : "Invalid ClientHello message. Message too short.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.illegal_parameter } });else { var s = t.fragment, c = s.length(); if (n = { version: { major: s.getByte(), minor: s.getByte() }, random: a.util.createBuffer(s.getBytes(32)), session_id: o(s, 1), extensions: [] }, i ? (n.cipher_suite = s.getBytes(2), n.compression_method = s.getByte()) : (n.cipher_suites = o(s, 2), n.compression_methods = o(s, 1)), (c = r - (c - s.length())) > 0) { for (var l = o(s, 2); l.length() > 0;) n.extensions.push({ type: [l.getByte(), l.getByte()], data: o(l, 2) }); if (!i) for (var p = 0; p < n.extensions.length; ++p) { var f = n.extensions[p]; if (0 === f.type[0] && 0 === f.type[1]) for (var h = o(f.data, 2); h.length() > 0;) { if (0 !== h.getByte()) break; e.session.extensions.server_name.serverNameList.push(o(h, 2).getBytes()); } } } if (e.session.version && (n.version.major !== e.session.version.major || n.version.minor !== e.session.version.minor)) return e.error(e, { message: "TLS version change is disallowed during renegotiation.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.protocol_version } }); if (i) e.session.cipherSuite = u.getCipherSuite(n.cipher_suite);else for (var d = a.util.createBuffer(n.cipher_suites.bytes()); d.length() > 0 && (e.session.cipherSuite = u.getCipherSuite(d.getBytes(2)), null === e.session.cipherSuite);); if (null === e.session.cipherSuite) return e.error(e, { message: "No cipher suites in common.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.handshake_failure }, cipherSuite: a.util.bytesToHex(n.cipher_suite) }); e.session.compressionMethod = i ? n.compression_method : u.CompressionMethod.none; } return n; }, u.createSecurityParameters = function (e, t) { var r = e.entity === u.ConnectionEnd.client, a = t.random.bytes(), n = r ? e.session.sp.client_random : a, i = r ? a : u.createRandom().getBytes(); e.session.sp = { entity: e.entity, prf_algorithm: u.PRFAlgorithm.tls_prf_sha256, bulk_cipher_algorithm: null, cipher_type: null, enc_key_length: null, block_length: null, fixed_iv_length: null, record_iv_length: null, mac_algorithm: null, mac_length: null, mac_key_length: null, compression_algorithm: e.session.compressionMethod, pre_master_secret: null, master_secret: null, client_random: n, server_random: i }; }, u.handleServerHello = function (e, t, r) { var a = u.parseHelloMessage(e, t, r); if (!e.fail) { if (!(a.version.minor <= e.version.minor)) return e.error(e, { message: "Incompatible TLS version.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.protocol_version } }); e.version.minor = a.version.minor, e.session.version = e.version; var n = a.session_id.bytes(); n.length > 0 && n === e.session.id ? (e.expect = d, e.session.resuming = !0, e.session.sp.server_random = a.random.bytes()) : (e.expect = l, e.session.resuming = !1, u.createSecurityParameters(e, a)), e.session.id = n, e.process(); } }, u.handleClientHello = function (e, t, r) { var n = u.parseHelloMessage(e, t, r); if (!e.fail) { var i = n.session_id.bytes(), s = null; if (e.sessionCache && (null === (s = e.sessionCache.getSession(i)) ? i = "" : (s.version.major !== n.version.major || s.version.minor > n.version.minor) && (s = null, i = "")), 0 === i.length && (i = a.random.getBytes(32)), e.session.id = i, e.session.clientHelloVersion = n.version, e.session.sp = {}, s) e.version = e.session.version = s.version, e.session.sp = s.sp;else { for (var o, c = 1; c < u.SupportedVersions.length && !((o = u.SupportedVersions[c]).minor <= n.version.minor); ++c); e.version = { major: o.major, minor: o.minor }, e.session.version = e.version; } null !== s ? (e.expect = S, e.session.resuming = !0, e.session.sp.client_random = n.random.bytes()) : (e.expect = !1 !== e.verifyClient ? v : C, e.session.resuming = !1, u.createSecurityParameters(e, n)), e.open = !0, u.queue(e, u.createRecord(e, { type: u.ContentType.handshake, data: u.createServerHello(e) })), e.session.resuming ? (u.queue(e, u.createRecord(e, { type: u.ContentType.change_cipher_spec, data: u.createChangeCipherSpec() })), e.state.pending = u.createConnectionState(e), e.state.current.write = e.state.pending.write, u.queue(e, u.createRecord(e, { type: u.ContentType.handshake, data: u.createFinished(e) }))) : (u.queue(e, u.createRecord(e, { type: u.ContentType.handshake, data: u.createCertificate(e) })), e.fail || (u.queue(e, u.createRecord(e, { type: u.ContentType.handshake, data: u.createServerKeyExchange(e) })), !1 !== e.verifyClient && u.queue(e, u.createRecord(e, { type: u.ContentType.handshake, data: u.createCertificateRequest(e) })), u.queue(e, u.createRecord(e, { type: u.ContentType.handshake, data: u.createServerHelloDone(e) })))), u.flush(e), e.process(); } }, u.handleCertificate = function (e, t, r) { if (r < 3) return e.error(e, { message: "Invalid Certificate message. Message too short.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.illegal_parameter } }); var n, i, s = t.fragment, c = { certificate_list: o(s, 3) }, l = []; try { for (; c.certificate_list.length() > 0;) n = o(c.certificate_list, 3), i = a.asn1.fromDer(n), n = a.pki.certificateFromAsn1(i, !0), l.push(n); } catch (t) { return e.error(e, { message: "Could not parse certificate list.", cause: t, send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.bad_certificate } }); } var f = e.entity === u.ConnectionEnd.client; !f && !0 !== e.verifyClient || 0 !== l.length ? 0 === l.length ? e.expect = f ? p : C : (f ? e.session.serverCertificate = l[0] : e.session.clientCertificate = l[0], u.verifyCertificateChain(e, l) && (e.expect = f ? p : C)) : e.error(e, { message: f ? "No server certificate provided." : "No client certificate provided.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.illegal_parameter } }), e.process(); }, u.handleServerKeyExchange = function (e, t, r) { if (r > 0) return e.error(e, { message: "Invalid key parameters. Only RSA is supported.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.unsupported_certificate } }); e.expect = f, e.process(); }, u.handleClientKeyExchange = function (e, t, r) { if (r < 48) return e.error(e, { message: "Invalid key parameters. Only RSA is supported.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.unsupported_certificate } }); var n = t.fragment, i = { enc_pre_master_secret: o(n, 2).getBytes() }, s = null; if (e.getPrivateKey) try { s = e.getPrivateKey(e, e.session.serverCertificate), s = a.pki.privateKeyFromPem(s); } catch (t) { e.error(e, { message: "Could not get private key.", cause: t, send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.internal_error } }); } if (null === s) return e.error(e, { message: "No private key set.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.internal_error } }); try { var c = e.session.sp; c.pre_master_secret = s.decrypt(i.enc_pre_master_secret); var l = e.session.clientHelloVersion; if (l.major !== c.pre_master_secret.charCodeAt(0) || l.minor !== c.pre_master_secret.charCodeAt(1)) throw new Error("TLS version rollback attack detected."); } catch (e) { c.pre_master_secret = a.random.getBytes(48); } e.expect = S, null !== e.session.clientCertificate && (e.expect = E), e.process(); }, u.handleCertificateRequest = function (e, t, r) { if (r < 3) return e.error(e, { message: "Invalid CertificateRequest. Message too short.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.illegal_parameter } }); var a = t.fragment, n = { certificate_types: o(a, 1), certificate_authorities: o(a, 2) }; e.session.certificateRequest = n, e.expect = h, e.process(); }, u.handleCertificateVerify = function (e, t, r) { if (r < 2) return e.error(e, { message: "Invalid CertificateVerify. Message too short.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.illegal_parameter } }); var n = t.fragment; n.read -= 4; var i = n.bytes(); n.read += 4; var s = { signature: o(n, 2).getBytes() }, c = a.util.createBuffer(); c.putBuffer(e.session.md5.digest()), c.putBuffer(e.session.sha1.digest()), c = c.getBytes(); try { if (!e.session.clientCertificate.publicKey.verify(c, s.signature, "NONE")) throw new Error("CertificateVerify signature does not match."); e.session.md5.update(i), e.session.sha1.update(i); } catch (t) { return e.error(e, { message: "Bad signature in CertificateVerify.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.handshake_failure } }); } e.expect = S, e.process(); }, u.handleServerHelloDone = function (e, t, r) { if (r > 0) return e.error(e, { message: "Invalid ServerHelloDone message. Invalid length.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.record_overflow } }); if (null === e.serverCertificate) { var n = { message: "No server certificate provided. Not enough security.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.insufficient_security } }, i = e.verify(e, n.alert.description, 0, []); if (!0 !== i) return (i || 0 === i) && ("object" != typeof i || a.util.isArray(i) ? "number" == typeof i && (n.alert.description = i) : (i.message && (n.message = i.message), i.alert && (n.alert.description = i.alert))), e.error(e, n); } null !== e.session.certificateRequest && (t = u.createRecord(e, { type: u.ContentType.handshake, data: u.createCertificate(e) }), u.queue(e, t)), t = u.createRecord(e, { type: u.ContentType.handshake, data: u.createClientKeyExchange(e) }), u.queue(e, t), e.expect = m; var s = function (e, t) { null !== e.session.certificateRequest && null !== e.session.clientCertificate && u.queue(e, u.createRecord(e, { type: u.ContentType.handshake, data: u.createCertificateVerify(e, t) })), u.queue(e, u.createRecord(e, { type: u.ContentType.change_cipher_spec, data: u.createChangeCipherSpec() })), e.state.pending = u.createConnectionState(e), e.state.current.write = e.state.pending.write, u.queue(e, u.createRecord(e, { type: u.ContentType.handshake, data: u.createFinished(e) })), e.expect = d, u.flush(e), e.process(); }; if (null === e.session.certificateRequest || null === e.session.clientCertificate) return s(e, null); u.getClientSignature(e, s); }, u.handleChangeCipherSpec = function (e, t) { if (1 !== t.fragment.getByte()) return e.error(e, { message: "Invalid ChangeCipherSpec message received.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.illegal_parameter } }); var r = e.entity === u.ConnectionEnd.client; (e.session.resuming && r || !e.session.resuming && !r) && (e.state.pending = u.createConnectionState(e)), e.state.current.read = e.state.pending.read, (!e.session.resuming && r || e.session.resuming && !r) && (e.state.pending = null), e.expect = r ? y : T, e.process(); }, u.handleFinished = function (e, t, r) { var i = t.fragment; i.read -= 4; var s = i.bytes(); i.read += 4; var o = t.fragment.getBytes(); (i = a.util.createBuffer()).putBuffer(e.session.md5.digest()), i.putBuffer(e.session.sha1.digest()); var c = e.entity === u.ConnectionEnd.client, l = c ? "server finished" : "client finished", p = e.session.sp; if ((i = n(p.master_secret, l, i.getBytes(), 12)).getBytes() !== o) return e.error(e, { message: "Invalid verify_data in Finished message.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.decrypt_error } }); e.session.md5.update(s), e.session.sha1.update(s), (e.session.resuming && c || !e.session.resuming && !c) && (u.queue(e, u.createRecord(e, { type: u.ContentType.change_cipher_spec, data: u.createChangeCipherSpec() })), e.state.current.write = e.state.pending.write, e.state.pending = null, u.queue(e, u.createRecord(e, { type: u.ContentType.handshake, data: u.createFinished(e) }))), e.expect = c ? g : I, e.handshaking = !1, ++e.handshakes, e.peerCertificate = c ? e.session.serverCertificate : e.session.clientCertificate, u.flush(e), e.isConnected = !0, e.connected(e), e.process(); }, u.handleAlert = function (e, t) { var r, a = t.fragment, n = { level: a.getByte(), description: a.getByte() }; switch (n.description) { case u.Alert.Description.close_notify: r = "Connection closed."; break; case u.Alert.Description.unexpected_message: r = "Unexpected message."; break; case u.Alert.Description.bad_record_mac: r = "Bad record MAC."; break; case u.Alert.Description.decryption_failed: r = "Decryption failed."; break; case u.Alert.Description.record_overflow: r = "Record overflow."; break; case u.Alert.Description.decompression_failure: r = "Decompression failed."; break; case u.Alert.Description.handshake_failure: r = "Handshake failure."; break; case u.Alert.Description.bad_certificate: r = "Bad certificate."; break; case u.Alert.Description.unsupported_certificate: r = "Unsupported certificate."; break; case u.Alert.Description.certificate_revoked: r = "Certificate revoked."; break; case u.Alert.Description.certificate_expired: r = "Certificate expired."; break; case u.Alert.Description.certificate_unknown: r = "Certificate unknown."; break; case u.Alert.Description.illegal_parameter: r = "Illegal parameter."; break; case u.Alert.Description.unknown_ca: r = "Unknown certificate authority."; break; case u.Alert.Description.access_denied: r = "Access denied."; break; case u.Alert.Description.decode_error: r = "Decode error."; break; case u.Alert.Description.decrypt_error: r = "Decrypt error."; break; case u.Alert.Description.export_restriction: r = "Export restriction."; break; case u.Alert.Description.protocol_version: r = "Unsupported protocol version."; break; case u.Alert.Description.insufficient_security: r = "Insufficient security."; break; case u.Alert.Description.internal_error: r = "Internal error."; break; case u.Alert.Description.user_canceled: r = "User canceled."; break; case u.Alert.Description.no_renegotiation: r = "Renegotiation not supported."; break; default: r = "Unknown error."; } if (n.description === u.Alert.Description.close_notify) return e.close(); e.error(e, { message: r, send: !1, origin: e.entity === u.ConnectionEnd.client ? "server" : "client", alert: n }), e.process(); }, u.handleHandshake = function (e, t) { var r = t.fragment, n = r.getByte(), i = r.getInt24(); if (i > r.length()) return e.fragmented = t, t.fragment = a.util.createBuffer(), r.read -= 4, e.process(); e.fragmented = null, r.read -= 4; var s = r.bytes(i + 4); r.read += 4, n in K[e.entity][e.expect] ? (e.entity !== u.ConnectionEnd.server || e.open || e.fail || (e.handshaking = !0, e.session = { version: null, extensions: { server_name: { serverNameList: [] } }, cipherSuite: null, compressionMethod: null, serverCertificate: null, clientCertificate: null, md5: a.md.md5.create(), sha1: a.md.sha1.create() }), n !== u.HandshakeType.hello_request && n !== u.HandshakeType.certificate_verify && n !== u.HandshakeType.finished && (e.session.md5.update(s), e.session.sha1.update(s)), K[e.entity][e.expect][n](e, t, i)) : u.handleUnexpected(e, t); }, u.handleApplicationData = function (e, t) { e.data.putBuffer(t.fragment), e.dataReady(e), e.process(); }, u.handleHeartbeat = function (e, t) { var r = t.fragment, n = r.getByte(), i = r.getInt16(), s = r.getBytes(i); if (n === u.HeartbeatMessageType.heartbeat_request) { if (e.handshaking || i > s.length) return e.process(); u.queue(e, u.createRecord(e, { type: u.ContentType.heartbeat, data: u.createHeartbeat(u.HeartbeatMessageType.heartbeat_response, s) })), u.flush(e); } else if (n === u.HeartbeatMessageType.heartbeat_response) { if (s !== e.expectedHeartbeatPayload) return e.process(); e.heartbeatReceived && e.heartbeatReceived(e, a.util.createBuffer(s)); } e.process(); }; var l = 1, p = 2, f = 3, h = 4, d = 5, y = 6, g = 7, m = 8, v = 1, C = 2, E = 3, S = 4, T = 5, I = 6, A = u.handleUnexpected, B = u.handleChangeCipherSpec, b = u.handleAlert, N = u.handleHandshake, R = u.handleApplicationData, w = u.handleHeartbeat, k = []; k[u.ConnectionEnd.client] = [[A, b, N, A, w], [A, b, N, A, w], [A, b, N, A, w], [A, b, N, A, w], [A, b, N, A, w], [B, b, A, A, w], [A, b, N, A, w], [A, b, N, R, w], [A, b, N, A, w]], k[u.ConnectionEnd.server] = [[A, b, N, A, w], [A, b, N, A, w], [A, b, N, A, w], [A, b, N, A, w], [B, b, A, A, w], [A, b, N, A, w], [A, b, N, R, w], [A, b, N, A, w]]; var _ = u.handleHelloRequest, L = u.handleServerHello, U = u.handleCertificate, D = u.handleServerKeyExchange, P = u.handleCertificateRequest, V = u.handleServerHelloDone, O = u.handleFinished, K = []; K[u.ConnectionEnd.client] = [[A, A, L, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A], [_, A, A, A, A, A, A, A, A, A, A, U, D, P, V, A, A, A, A, A, A], [_, A, A, A, A, A, A, A, A, A, A, A, D, P, V, A, A, A, A, A, A], [_, A, A, A, A, A, A, A, A, A, A, A, A, P, V, A, A, A, A, A, A], [_, A, A, A, A, A, A, A, A, A, A, A, A, A, V, A, A, A, A, A, A], [_, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A], [_, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, O], [_, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A], [_, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A]]; var x = u.handleClientHello, M = u.handleClientKeyExchange, F = u.handleCertificateVerify; K[u.ConnectionEnd.server] = [[A, x, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A], [A, A, A, A, A, A, A, A, A, A, A, U, A, A, A, A, A, A, A, A, A], [A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, M, A, A, A, A], [A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F, A, A, A, A, A], [A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A], [A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, O], [A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A], [A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A]], u.generateKeys = function (e, t) { var r = n, a = t.client_random + t.server_random; e.session.resuming || (t.master_secret = r(t.pre_master_secret, "master secret", a, 48).bytes(), t.pre_master_secret = null), a = t.server_random + t.client_random; var i = 2 * t.mac_key_length + 2 * t.enc_key_length, s = e.version.major === u.Versions.TLS_1_0.major && e.version.minor === u.Versions.TLS_1_0.minor; s && (i += 2 * t.fixed_iv_length); var o = r(t.master_secret, "key expansion", a, i), c = { client_write_MAC_key: o.getBytes(t.mac_key_length), server_write_MAC_key: o.getBytes(t.mac_key_length), client_write_key: o.getBytes(t.enc_key_length), server_write_key: o.getBytes(t.enc_key_length) }; return s && (c.client_write_IV = o.getBytes(t.fixed_iv_length), c.server_write_IV = o.getBytes(t.fixed_iv_length)), c; }, u.createConnectionState = function (e) { var t = e.entity === u.ConnectionEnd.client, r = function () { var e = { sequenceNumber: [0, 0], macKey: null, macLength: 0, macFunction: null, cipherState: null, cipherFunction: function (e) { return !0; }, compressionState: null, compressFunction: function (e) { return !0; }, updateSequenceNumber: function () { 4294967295 === e.sequenceNumber[1] ? (e.sequenceNumber[1] = 0, ++e.sequenceNumber[0]) : ++e.sequenceNumber[1]; } }; return e; }, a = { read: r(), write: r() }; if (a.read.update = function (e, t) { return a.read.cipherFunction(t, a.read) ? a.read.compressFunction(e, t, a.read) || e.error(e, { message: "Could not decompress record.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.decompression_failure } }) : e.error(e, { message: "Could not decrypt record or bad MAC.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.bad_record_mac } }), !e.fail; }, a.write.update = function (e, t) { return a.write.compressFunction(e, t, a.write) ? a.write.cipherFunction(t, a.write) || e.error(e, { message: "Could not encrypt record.", send: !1, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.internal_error } }) : e.error(e, { message: "Could not compress record.", send: !1, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.internal_error } }), !e.fail; }, e.session) { var n = e.session.sp; switch (e.session.cipherSuite.initSecurityParameters(n), n.keys = u.generateKeys(e, n), a.read.macKey = t ? n.keys.server_write_MAC_key : n.keys.client_write_MAC_key, a.write.macKey = t ? n.keys.client_write_MAC_key : n.keys.server_write_MAC_key, e.session.cipherSuite.initConnectionState(a, e, n), n.compression_algorithm) { case u.CompressionMethod.none: break; case u.CompressionMethod.deflate: a.read.compressFunction = s, a.write.compressFunction = i; break; default: throw new Error("Unsupported compression algorithm."); } } return a; }, u.createRandom = function () { var e = new Date(), t = +e + 6e4 * e.getTimezoneOffset(), r = a.util.createBuffer(); return r.putInt32(t), r.putBytes(a.random.getBytes(28)), r; }, u.createRecord = function (e, t) { return t.data ? { type: t.type, version: { major: e.version.major, minor: e.version.minor }, length: t.data.length(), fragment: t.data } : null; }, u.createAlert = function (e, t) { var r = a.util.createBuffer(); return r.putByte(t.level), r.putByte(t.description), u.createRecord(e, { type: u.ContentType.alert, data: r }); }, u.createClientHello = function (e) { e.session.clientHelloVersion = { major: e.version.major, minor: e.version.minor }; for (var t = a.util.createBuffer(), r = 0; r < e.cipherSuites.length; ++r) { var n = e.cipherSuites[r]; t.putByte(n.id[0]), t.putByte(n.id[1]); } var i = t.length(), s = a.util.createBuffer(); s.putByte(u.CompressionMethod.none); var o = s.length(), l = a.util.createBuffer(); if (e.virtualHost) { var p = a.util.createBuffer(); p.putByte(0), p.putByte(0); var f = a.util.createBuffer(); f.putByte(0), c(f, 2, a.util.createBuffer(e.virtualHost)); var h = a.util.createBuffer(); c(h, 2, f), c(p, 2, h), l.putBuffer(p); } var d = l.length(); d > 0 && (d += 2); var y = e.session.id, g = y.length + 1 + 2 + 4 + 28 + 2 + i + 1 + o + d, m = a.util.createBuffer(); return m.putByte(u.HandshakeType.client_hello), m.putInt24(g), m.putByte(e.version.major), m.putByte(e.version.minor), m.putBytes(e.session.sp.client_random), c(m, 1, a.util.createBuffer(y)), c(m, 2, t), c(m, 1, s), d > 0 && c(m, 2, l), m; }, u.createServerHello = function (e) { var t = e.session.id, r = t.length + 1 + 2 + 4 + 28 + 2 + 1, n = a.util.createBuffer(); return n.putByte(u.HandshakeType.server_hello), n.putInt24(r), n.putByte(e.version.major), n.putByte(e.version.minor), n.putBytes(e.session.sp.server_random), c(n, 1, a.util.createBuffer(t)), n.putByte(e.session.cipherSuite.id[0]), n.putByte(e.session.cipherSuite.id[1]), n.putByte(e.session.compressionMethod), n; }, u.createCertificate = function (e) { var t, r = e.entity === u.ConnectionEnd.client, n = null; e.getCertificate && (t = r ? e.session.certificateRequest : e.session.extensions.server_name.serverNameList, n = e.getCertificate(e, t)); var i = a.util.createBuffer(); if (null !== n) try { a.util.isArray(n) || (n = [n]); for (var s = null, o = 0; o < n.length; ++o) { var l = a.pem.decode(n[o])[0]; if ("CERTIFICATE" !== l.type && "X509 CERTIFICATE" !== l.type && "TRUSTED CERTIFICATE" !== l.type) { var p = new Error('Could not convert certificate from PEM; PEM header type is not "CERTIFICATE", "X509 CERTIFICATE", or "TRUSTED CERTIFICATE".'); throw p.headerType = l.type, p; } if (l.procType && "ENCRYPTED" === l.procType.type) throw new Error("Could not convert certificate from PEM; PEM is encrypted."); var f = a.util.createBuffer(l.body); null === s && (s = a.asn1.fromDer(f.bytes(), !1)); var h = a.util.createBuffer(); c(h, 3, f), i.putBuffer(h); } n = a.pki.certificateFromAsn1(s), r ? e.session.clientCertificate = n : e.session.serverCertificate = n; } catch (t) { return e.error(e, { message: "Could not send certificate list.", cause: t, send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.bad_certificate } }); } var d = 3 + i.length(), y = a.util.createBuffer(); return y.putByte(u.HandshakeType.certificate), y.putInt24(d), c(y, 3, i), y; }, u.createClientKeyExchange = function (e) { var t = a.util.createBuffer(); t.putByte(e.session.clientHelloVersion.major), t.putByte(e.session.clientHelloVersion.minor), t.putBytes(a.random.getBytes(46)); var r = e.session.sp; r.pre_master_secret = t.getBytes(); var n = (t = e.session.serverCertificate.publicKey.encrypt(r.pre_master_secret)).length + 2, i = a.util.createBuffer(); return i.putByte(u.HandshakeType.client_key_exchange), i.putInt24(n), i.putInt16(t.length), i.putBytes(t), i; }, u.createServerKeyExchange = function (e) { var t = a.util.createBuffer(); return t; }, u.getClientSignature = function (e, t) { var r = a.util.createBuffer(); r.putBuffer(e.session.md5.digest()), r.putBuffer(e.session.sha1.digest()), r = r.getBytes(), e.getSignature = e.getSignature || function (e, t, r) { var n = null; if (e.getPrivateKey) try { n = e.getPrivateKey(e, e.session.clientCertificate), n = a.pki.privateKeyFromPem(n); } catch (t) { e.error(e, { message: "Could not get private key.", cause: t, send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.internal_error } }); } null === n ? e.error(e, { message: "No private key set.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.internal_error } }) : t = n.sign(t, null), r(e, t); }, e.getSignature(e, r, t); }, u.createCertificateVerify = function (e, t) { var r = t.length + 2, n = a.util.createBuffer(); return n.putByte(u.HandshakeType.certificate_verify), n.putInt24(r), n.putInt16(t.length), n.putBytes(t), n; }, u.createCertificateRequest = function (e) { var t = a.util.createBuffer(); t.putByte(1); var r = a.util.createBuffer(); for (var n in e.caStore.certs) { var i = e.caStore.certs[n], s = a.pki.distinguishedNameToAsn1(i.subject), o = a.asn1.toDer(s); r.putInt16(o.length()), r.putBuffer(o); } var l = 1 + t.length() + 2 + r.length(), p = a.util.createBuffer(); return p.putByte(u.HandshakeType.certificate_request), p.putInt24(l), c(p, 1, t), c(p, 2, r), p; }, u.createServerHelloDone = function (e) { var t = a.util.createBuffer(); return t.putByte(u.HandshakeType.server_hello_done), t.putInt24(0), t; }, u.createChangeCipherSpec = function () { var e = a.util.createBuffer(); return e.putByte(1), e; }, u.createFinished = function (e) { var t = a.util.createBuffer(); t.putBuffer(e.session.md5.digest()), t.putBuffer(e.session.sha1.digest()); var r = e.entity === u.ConnectionEnd.client, i = e.session.sp, s = r ? "client finished" : "server finished"; t = n(i.master_secret, s, t.getBytes(), 12); var o = a.util.createBuffer(); return o.putByte(u.HandshakeType.finished), o.putInt24(t.length()), o.putBuffer(t), o; }, u.createHeartbeat = function (e, t, r) { void 0 === r && (r = t.length); var n = a.util.createBuffer(); n.putByte(e), n.putInt16(r), n.putBytes(t); var i = n.length(), s = Math.max(16, i - r - 3); return n.putBytes(a.random.getBytes(s)), n; }, u.queue = function (e, t) { if (t && (0 !== t.fragment.length() || t.type !== u.ContentType.handshake && t.type !== u.ContentType.alert && t.type !== u.ContentType.change_cipher_spec)) { if (t.type === u.ContentType.handshake) { var r = t.fragment.bytes(); e.session.md5.update(r), e.session.sha1.update(r), r = null; } var n; if (t.fragment.length() <= u.MaxFragment) n = [t];else { n = []; for (var i = t.fragment.bytes(); i.length > u.MaxFragment;) n.push(u.createRecord(e, { type: t.type, data: a.util.createBuffer(i.slice(0, u.MaxFragment)) })), i = i.slice(u.MaxFragment); i.length > 0 && n.push(u.createRecord(e, { type: t.type, data: a.util.createBuffer(i) })); } for (var s = 0; s < n.length && !e.fail; ++s) { var o = n[s]; e.state.current.write.update(e, o) && e.records.push(o); } } }, u.flush = function (e) { for (var t = 0; t < e.records.length; ++t) { var r = e.records[t]; e.tlsData.putByte(r.type), e.tlsData.putByte(r.version.major), e.tlsData.putByte(r.version.minor), e.tlsData.putInt16(r.fragment.length()), e.tlsData.putBuffer(e.records[t].fragment); } return e.records = [], e.tlsDataReady(e); }; var j = function (e) { switch (e) { case !0: return !0; case a.pki.certificateError.bad_certificate: return u.Alert.Description.bad_certificate; case a.pki.certificateError.unsupported_certificate: return u.Alert.Description.unsupported_certificate; case a.pki.certificateError.certificate_revoked: return u.Alert.Description.certificate_revoked; case a.pki.certificateError.certificate_expired: return u.Alert.Description.certificate_expired; case a.pki.certificateError.certificate_unknown: return u.Alert.Description.certificate_unknown; case a.pki.certificateError.unknown_ca: return u.Alert.Description.unknown_ca; default: return u.Alert.Description.bad_certificate; } }; for (var G in u.verifyCertificateChain = function (e, t) { try { var r = {}; for (var n in e.verifyOptions) r[n] = e.verifyOptions[n]; r.verify = function (t, r, n) { j(t); var i = e.verify(e, t, r, n); if (!0 !== i) { if ("object" == typeof i && !a.util.isArray(i)) { var s = new Error("The application rejected the certificate."); throw s.send = !0, s.alert = { level: u.Alert.Level.fatal, description: u.Alert.Description.bad_certificate }, i.message && (s.message = i.message), i.alert && (s.alert.description = i.alert), s; } i !== t && (i = function (e) { switch (e) { case !0: return !0; case u.Alert.Description.bad_certificate: return a.pki.certificateError.bad_certificate; case u.Alert.Description.unsupported_certificate: return a.pki.certificateError.unsupported_certificate; case u.Alert.Description.certificate_revoked: return a.pki.certificateError.certificate_revoked; case u.Alert.Description.certificate_expired: return a.pki.certificateError.certificate_expired; case u.Alert.Description.certificate_unknown: return a.pki.certificateError.certificate_unknown; case u.Alert.Description.unknown_ca: return a.pki.certificateError.unknown_ca; default: return a.pki.certificateError.bad_certificate; } }(i)); } return i; }, a.pki.verifyCertificateChain(e.caStore, t, r); } catch (t) { var i = t; ("object" != typeof i || a.util.isArray(i)) && (i = { send: !0, alert: { level: u.Alert.Level.fatal, description: j(t) } }), "send" in i || (i.send = !0), "alert" in i || (i.alert = { level: u.Alert.Level.fatal, description: j(i.error) }), e.error(e, i); } return !e.fail; }, u.createSessionCache = function (e, t) { var r = null; if (e && e.getSession && e.setSession && e.order) r = e;else { for (var n in (r = {}).cache = e || {}, r.capacity = Math.max(t || 100, 1), r.order = [], e) r.order.length <= t ? r.order.push(n) : delete e[n]; r.getSession = function (e) { var t = null, n = null; if (e ? n = a.util.bytesToHex(e) : r.order.length > 0 && (n = r.order[0]), null !== n && n in r.cache) for (var i in t = r.cache[n], delete r.cache[n], r.order) if (r.order[i] === n) { r.order.splice(i, 1); break; } return t; }, r.setSession = function (e, t) { if (r.order.length === r.capacity) { var n = r.order.shift(); delete r.cache[n]; } n = a.util.bytesToHex(e); r.order.push(n), r.cache[n] = t; }; } return r; }, u.createConnection = function (e) { var t = null; t = e.caStore ? a.util.isArray(e.caStore) ? a.pki.createCaStore(e.caStore) : e.caStore : a.pki.createCaStore(); var r = e.cipherSuites || null; if (null === r) for (var n in r = [], u.CipherSuites) r.push(u.CipherSuites[n]); var i = e.server ? u.ConnectionEnd.server : u.ConnectionEnd.client, s = e.sessionCache ? u.createSessionCache(e.sessionCache) : null, o = { version: { major: u.Version.major, minor: u.Version.minor }, entity: i, sessionId: e.sessionId, caStore: t, sessionCache: s, cipherSuites: r, connected: e.connected, virtualHost: e.virtualHost || null, verifyClient: e.verifyClient || !1, verify: e.verify || function (e, t, r, a) { return t; }, verifyOptions: e.verifyOptions || {}, getCertificate: e.getCertificate || null, getPrivateKey: e.getPrivateKey || null, getSignature: e.getSignature || null, input: a.util.createBuffer(), tlsData: a.util.createBuffer(), data: a.util.createBuffer(), tlsDataReady: e.tlsDataReady, dataReady: e.dataReady, heartbeatReceived: e.heartbeatReceived, closed: e.closed, error: function (t, r) { r.origin = r.origin || (t.entity === u.ConnectionEnd.client ? "client" : "server"), r.send && (u.queue(t, u.createAlert(t, r.alert)), u.flush(t)); var a = !1 !== r.fatal; a && (t.fail = !0), e.error(t, r), a && t.close(!1); }, deflate: e.deflate || null, inflate: e.inflate || null, reset: function (e) { o.version = { major: u.Version.major, minor: u.Version.minor }, o.record = null, o.session = null, o.peerCertificate = null, o.state = { pending: null, current: null }, o.expect = (o.entity, u.ConnectionEnd.client, 0), o.fragmented = null, o.records = [], o.open = !1, o.handshakes = 0, o.handshaking = !1, o.isConnected = !1, o.fail = !(e || void 0 === e), o.input.clear(), o.tlsData.clear(), o.data.clear(), o.state.current = u.createConnectionState(o); } }; o.reset(); return o.handshake = function (e) { if (o.entity !== u.ConnectionEnd.client) o.error(o, { message: "Cannot initiate handshake as a server.", fatal: !1 });else if (o.handshaking) o.error(o, { message: "Handshake already in progress.", fatal: !1 });else { o.fail && !o.open && 0 === o.handshakes && (o.fail = !1), o.handshaking = !0; var t = null; (e = e || "").length > 0 && (o.sessionCache && (t = o.sessionCache.getSession(e)), null === t && (e = "")), 0 === e.length && o.sessionCache && null !== (t = o.sessionCache.getSession()) && (e = t.id), o.session = { id: e, version: null, cipherSuite: null, compressionMethod: null, serverCertificate: null, certificateRequest: null, clientCertificate: null, sp: {}, md5: a.md.md5.create(), sha1: a.md.sha1.create() }, t && (o.version = t.version, o.session.sp = t.sp), o.session.sp.client_random = u.createRandom().getBytes(), o.open = !0, u.queue(o, u.createRecord(o, { type: u.ContentType.handshake, data: u.createClientHello(o) })), u.flush(o); } }, o.process = function (e) { var t = 0; return e && o.input.putBytes(e), o.fail || (null !== o.record && o.record.ready && o.record.fragment.isEmpty() && (o.record = null), null === o.record && (t = function (e) { var t = 0, r = e.input, n = r.length(); if (n < 5) t = 5 - n;else { e.record = { type: r.getByte(), version: { major: r.getByte(), minor: r.getByte() }, length: r.getInt16(), fragment: a.util.createBuffer(), ready: !1 }; var i = e.record.version.major === e.version.major; i && e.session && e.session.version && (i = e.record.version.minor === e.version.minor), i || e.error(e, { message: "Incompatible TLS version.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.protocol_version } }); } return t; }(o)), o.fail || null === o.record || o.record.ready || (t = function (e) { var t = 0, r = e.input, a = r.length(); a < e.record.length ? t = e.record.length - a : (e.record.fragment.putBytes(r.getBytes(e.record.length)), r.compact(), e.state.current.read.update(e, e.record) && (null !== e.fragmented && (e.fragmented.type === e.record.type ? (e.fragmented.fragment.putBuffer(e.record.fragment), e.record = e.fragmented) : e.error(e, { message: "Invalid fragmented record.", send: !0, alert: { level: u.Alert.Level.fatal, description: u.Alert.Description.unexpected_message } })), e.record.ready = !0)); return t; }(o)), !o.fail && null !== o.record && o.record.ready && function (e, t) { var r = t.type - u.ContentType.change_cipher_spec, a = k[e.entity][e.expect]; r in a ? a[r](e, t) : u.handleUnexpected(e, t); }(o, o.record)), t; }, o.prepare = function (e) { return u.queue(o, u.createRecord(o, { type: u.ContentType.application_data, data: a.util.createBuffer(e) })), u.flush(o); }, o.prepareHeartbeatRequest = function (e, t) { return e instanceof a.util.ByteBuffer && (e = e.bytes()), void 0 === t && (t = e.length), o.expectedHeartbeatPayload = e, u.queue(o, u.createRecord(o, { type: u.ContentType.heartbeat, data: u.createHeartbeat(u.HeartbeatMessageType.heartbeat_request, e, t) })), u.flush(o); }, o.close = function (e) { if (!o.fail && o.sessionCache && o.session) { var t = { id: o.session.id, version: o.session.version, sp: o.session.sp }; t.sp.keys = null, o.sessionCache.setSession(t.id, t); } o.open && (o.open = !1, o.input.clear(), (o.isConnected || o.handshaking) && (o.isConnected = o.handshaking = !1, u.queue(o, u.createAlert(o, { level: u.Alert.Level.warning, description: u.Alert.Description.close_notify })), u.flush(o)), o.closed(o)), o.reset(e); }, o; }, e.exports = a.tls = a.tls || {}, u) "function" != typeof u[G] && (a.tls[G] = u[G]); a.tls.prf_tls1 = n, a.tls.hmac_sha1 = function (e, t, r) { var n = a.hmac.create(); n.start("SHA1", e); var i = a.util.createBuffer(); return i.putInt32(t[0]), i.putInt32(t[1]), i.putByte(r.type), i.putByte(r.version.major), i.putByte(r.version.minor), i.putInt16(r.length), i.putBytes(r.fragment.bytes()), n.update(i.getBytes()), n.digest().getBytes(); }, a.tls.createSessionCache = u.createSessionCache, a.tls.createConnection = u.createConnection; }, function (e, t, r) { var a = r(0); r(3), r(6), r(22), r(7), r(15), r(28), r(18), r(11), r(1), r(17); var n = a.asn1, i = e.exports = a.pki = a.pki || {}; i.pemToDer = function (e) { var t = a.pem.decode(e)[0]; if (t.procType && "ENCRYPTED" === t.procType.type) throw new Error("Could not convert PEM to DER; PEM is encrypted."); return a.util.createBuffer(t.body); }, i.privateKeyFromPem = function (e) { var t = a.pem.decode(e)[0]; if ("PRIVATE KEY" !== t.type && "RSA PRIVATE KEY" !== t.type) { var r = new Error('Could not convert private key from PEM; PEM header type is not "PRIVATE KEY" or "RSA PRIVATE KEY".'); throw r.headerType = t.type, r; } if (t.procType && "ENCRYPTED" === t.procType.type) throw new Error("Could not convert private key from PEM; PEM is encrypted."); var s = n.fromDer(t.body); return i.privateKeyFromAsn1(s); }, i.privateKeyToPem = function (e, t) { var r = { type: "RSA PRIVATE KEY", body: n.toDer(i.privateKeyToAsn1(e)).getBytes() }; return a.pem.encode(r, { maxline: t }); }, i.privateKeyInfoToPem = function (e, t) { var r = { type: "PRIVATE KEY", body: n.toDer(e).getBytes() }; return a.pem.encode(r, { maxline: t }); }; }, function (e, t, r) { var a = r(0); if (r(5), r(3), r(10), r(4), r(6), r(15), r(7), r(2), r(25), r(11), r(1), void 0 === n) var n = a.jsbn.BigInteger; var i = a.asn1, s = a.pki = a.pki || {}; e.exports = s.pbe = a.pbe = a.pbe || {}; var o = s.oids, c = { name: "EncryptedPrivateKeyInfo", tagClass: i.Class.UNIVERSAL, type: i.Type.SEQUENCE, constructed: !0, value: [{ name: "EncryptedPrivateKeyInfo.encryptionAlgorithm", tagClass: i.Class.UNIVERSAL, type: i.Type.SEQUENCE, constructed: !0, value: [{ name: "AlgorithmIdentifier.algorithm", tagClass: i.Class.UNIVERSAL, type: i.Type.OID, constructed: !1, capture: "encryptionOid" }, { name: "AlgorithmIdentifier.parameters", tagClass: i.Class.UNIVERSAL, type: i.Type.SEQUENCE, constructed: !0, captureAsn1: "encryptionParams" }] }, { name: "EncryptedPrivateKeyInfo.encryptedData", tagClass: i.Class.UNIVERSAL, type: i.Type.OCTETSTRING, constructed: !1, capture: "encryptedData" }] }, u = { name: "PBES2Algorithms", tagClass: i.Class.UNIVERSAL, type: i.Type.SEQUENCE, constructed: !0, value: [{ name: "PBES2Algorithms.keyDerivationFunc", tagClass: i.Class.UNIVERSAL, type: i.Type.SEQUENCE, constructed: !0, value: [{ name: "PBES2Algorithms.keyDerivationFunc.oid", tagClass: i.Class.UNIVERSAL, type: i.Type.OID, constructed: !1, capture: "kdfOid" }, { name: "PBES2Algorithms.params", tagClass: i.Class.UNIVERSAL, type: i.Type.SEQUENCE, constructed: !0, value: [{ name: "PBES2Algorithms.params.salt", tagClass: i.Class.UNIVERSAL, type: i.Type.OCTETSTRING, constructed: !1, capture: "kdfSalt" }, { name: "PBES2Algorithms.params.iterationCount", tagClass: i.Class.UNIVERSAL, type: i.Type.INTEGER, constructed: !1, capture: "kdfIterationCount" }, { name: "PBES2Algorithms.params.keyLength", tagClass: i.Class.UNIVERSAL, type: i.Type.INTEGER, constructed: !1, optional: !0, capture: "keyLength" }, { name: "PBES2Algorithms.params.prf", tagClass: i.Class.UNIVERSAL, type: i.Type.SEQUENCE, constructed: !0, optional: !0, value: [{ name: "PBES2Algorithms.params.prf.algorithm", tagClass: i.Class.UNIVERSAL, type: i.Type.OID, constructed: !1, capture: "prfOid" }] }] }] }, { name: "PBES2Algorithms.encryptionScheme", tagClass: i.Class.UNIVERSAL, type: i.Type.SEQUENCE, constructed: !0, value: [{ name: "PBES2Algorithms.encryptionScheme.oid", tagClass: i.Class.UNIVERSAL, type: i.Type.OID, constructed: !1, capture: "encOid" }, { name: "PBES2Algorithms.encryptionScheme.iv", tagClass: i.Class.UNIVERSAL, type: i.Type.OCTETSTRING, constructed: !1, capture: "encIv" }] }] }, l = { name: "pkcs-12PbeParams", tagClass: i.Class.UNIVERSAL, type: i.Type.SEQUENCE, constructed: !0, value: [{ name: "pkcs-12PbeParams.salt", tagClass: i.Class.UNIVERSAL, type: i.Type.OCTETSTRING, constructed: !1, capture: "salt" }, { name: "pkcs-12PbeParams.iterations", tagClass: i.Class.UNIVERSAL, type: i.Type.INTEGER, constructed: !1, capture: "iterations" }] }; function p(e, t) { return e.start().update(t).digest().getBytes(); } function f(e) { var t; if (e) { if (!(t = s.oids[i.derToOid(e)])) { var r = new Error("Unsupported PRF OID."); throw r.oid = e, r.supported = ["hmacWithSHA1", "hmacWithSHA224", "hmacWithSHA256", "hmacWithSHA384", "hmacWithSHA512"], r; } } else t = "hmacWithSHA1"; return h(t); } function h(e) { var t = a.md; switch (e) { case "hmacWithSHA224": t = a.md.sha512; case "hmacWithSHA1": case "hmacWithSHA256": case "hmacWithSHA384": case "hmacWithSHA512": e = e.substr(8).toLowerCase(); break; default: var r = new Error("Unsupported PRF algorithm."); throw r.algorithm = e, r.supported = ["hmacWithSHA1", "hmacWithSHA224", "hmacWithSHA256", "hmacWithSHA384", "hmacWithSHA512"], r; } if (!t || !(e in t)) throw new Error("Unknown hash algorithm: " + e); return t[e].create(); } s.encryptPrivateKeyInfo = function (e, t, r) { (r = r || {}).saltSize = r.saltSize || 8, r.count = r.count || 2048, r.algorithm = r.algorithm || "aes128", r.prfAlgorithm = r.prfAlgorithm || "sha1"; var n, c, u, l = a.random.getBytesSync(r.saltSize), p = r.count, f = i.integerToDer(p); if (0 === r.algorithm.indexOf("aes") || "des" === r.algorithm) { var d, y, g; switch (r.algorithm) { case "aes128": n = 16, d = 16, y = o["aes128-CBC"], g = a.aes.createEncryptionCipher; break; case "aes192": n = 24, d = 16, y = o["aes192-CBC"], g = a.aes.createEncryptionCipher; break; case "aes256": n = 32, d = 16, y = o["aes256-CBC"], g = a.aes.createEncryptionCipher; break; case "des": n = 8, d = 8, y = o.desCBC, g = a.des.createEncryptionCipher; break; default: throw (T = new Error("Cannot encrypt private key. Unknown encryption algorithm.")).algorithm = r.algorithm, T; } var m = "hmacWith" + r.prfAlgorithm.toUpperCase(), v = h(m), C = a.pkcs5.pbkdf2(t, l, p, n, v), E = a.random.getBytesSync(d); (I = g(C)).start(E), I.update(i.toDer(e)), I.finish(), u = I.output.getBytes(); var S = function (e, t, r, n) { var o = i.create(i.Class.UNIVERSAL, i.Type.SEQUENCE, !0, [i.create(i.Class.UNIVERSAL, i.Type.OCTETSTRING, !1, e), i.create(i.Class.UNIVERSAL, i.Type.INTEGER, !1, t.getBytes())]); "hmacWithSHA1" !== n && o.value.push(i.create(i.Class.UNIVERSAL, i.Type.INTEGER, !1, a.util.hexToBytes(r.toString(16))), i.create(i.Class.UNIVERSAL, i.Type.SEQUENCE, !0, [i.create(i.Class.UNIVERSAL, i.Type.OID, !1, i.oidToDer(s.oids[n]).getBytes()), i.create(i.Class.UNIVERSAL, i.Type.NULL, !1, "")])); return o; }(l, f, n, m); c = i.create(i.Class.UNIVERSAL, i.Type.SEQUENCE, !0, [i.create(i.Class.UNIVERSAL, i.Type.OID, !1, i.oidToDer(o.pkcs5PBES2).getBytes()), i.create(i.Class.UNIVERSAL, i.Type.SEQUENCE, !0, [i.create(i.Class.UNIVERSAL, i.Type.SEQUENCE, !0, [i.create(i.Class.UNIVERSAL, i.Type.OID, !1, i.oidToDer(o.pkcs5PBKDF2).getBytes()), S]), i.create(i.Class.UNIVERSAL, i.Type.SEQUENCE, !0, [i.create(i.Class.UNIVERSAL, i.Type.OID, !1, i.oidToDer(y).getBytes()), i.create(i.Class.UNIVERSAL, i.Type.OCTETSTRING, !1, E)])])]); } else { var T; if ("3des" !== r.algorithm) throw (T = new Error("Cannot encrypt private key. Unknown encryption algorithm.")).algorithm = r.algorithm, T; n = 24; var I, A = new a.util.ByteBuffer(l); C = s.pbe.generatePkcs12Key(t, A, 1, p, n), E = s.pbe.generatePkcs12Key(t, A, 2, p, n); (I = a.des.createEncryptionCipher(C)).start(E), I.update(i.toDer(e)), I.finish(), u = I.output.getBytes(), c = i.create(i.Class.UNIVERSAL, i.Type.SEQUENCE, !0, [i.create(i.Class.UNIVERSAL, i.Type.OID, !1, i.oidToDer(o["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()), i.create(i.Class.UNIVERSAL, i.Type.SEQUENCE, !0, [i.create(i.Class.UNIVERSAL, i.Type.OCTETSTRING, !1, l), i.create(i.Class.UNIVERSAL, i.Type.INTEGER, !1, f.getBytes())])]); } return i.create(i.Class.UNIVERSAL, i.Type.SEQUENCE, !0, [c, i.create(i.Class.UNIVERSAL, i.Type.OCTETSTRING, !1, u)]); }, s.decryptPrivateKeyInfo = function (e, t) { var r = null, n = {}, o = []; if (!i.validate(e, c, n, o)) { var u = new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo."); throw u.errors = o, u; } var l = i.derToOid(n.encryptionOid), p = s.pbe.getCipher(l, n.encryptionParams, t), f = a.util.createBuffer(n.encryptedData); return p.update(f), p.finish() && (r = i.fromDer(p.output)), r; }, s.encryptedPrivateKeyToPem = function (e, t) { var r = { type: "ENCRYPTED PRIVATE KEY", body: i.toDer(e).getBytes() }; return a.pem.encode(r, { maxline: t }); }, s.encryptedPrivateKeyFromPem = function (e) { var t = a.pem.decode(e)[0]; if ("ENCRYPTED PRIVATE KEY" !== t.type) { var r = new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".'); throw r.headerType = t.type, r; } if (t.procType && "ENCRYPTED" === t.procType.type) throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted."); return i.fromDer(t.body); }, s.encryptRsaPrivateKey = function (e, t, r) { if (!(r = r || {}).legacy) { var n = s.wrapRsaPrivateKey(s.privateKeyToAsn1(e)); return n = s.encryptPrivateKeyInfo(n, t, r), s.encryptedPrivateKeyToPem(n); } var o, c, u, l; switch (r.algorithm) { case "aes128": o = "AES-128-CBC", u = 16, c = a.random.getBytesSync(16), l = a.aes.createEncryptionCipher; break; case "aes192": o = "AES-192-CBC", u = 24, c = a.random.getBytesSync(16), l = a.aes.createEncryptionCipher; break; case "aes256": o = "AES-256-CBC", u = 32, c = a.random.getBytesSync(16), l = a.aes.createEncryptionCipher; break; case "3des": o = "DES-EDE3-CBC", u = 24, c = a.random.getBytesSync(8), l = a.des.createEncryptionCipher; break; case "des": o = "DES-CBC", u = 8, c = a.random.getBytesSync(8), l = a.des.createEncryptionCipher; break; default: var p = new Error('Could not encrypt RSA private key; unsupported encryption algorithm "' + r.algorithm + '".'); throw p.algorithm = r.algorithm, p; } var f = l(a.pbe.opensslDeriveBytes(t, c.substr(0, 8), u)); f.start(c), f.update(i.toDer(s.privateKeyToAsn1(e))), f.finish(); var h = { type: "RSA PRIVATE KEY", procType: { version: "4", type: "ENCRYPTED" }, dekInfo: { algorithm: o, parameters: a.util.bytesToHex(c).toUpperCase() }, body: f.output.getBytes() }; return a.pem.encode(h); }, s.decryptRsaPrivateKey = function (e, t) { var r = null, n = a.pem.decode(e)[0]; if ("ENCRYPTED PRIVATE KEY" !== n.type && "PRIVATE KEY" !== n.type && "RSA PRIVATE KEY" !== n.type) throw (u = new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".')).headerType = u, u; if (n.procType && "ENCRYPTED" === n.procType.type) { var o, c; switch (n.dekInfo.algorithm) { case "DES-CBC": o = 8, c = a.des.createDecryptionCipher; break; case "DES-EDE3-CBC": o = 24, c = a.des.createDecryptionCipher; break; case "AES-128-CBC": o = 16, c = a.aes.createDecryptionCipher; break; case "AES-192-CBC": o = 24, c = a.aes.createDecryptionCipher; break; case "AES-256-CBC": o = 32, c = a.aes.createDecryptionCipher; break; case "RC2-40-CBC": o = 5, c = function (e) { return a.rc2.createDecryptionCipher(e, 40); }; break; case "RC2-64-CBC": o = 8, c = function (e) { return a.rc2.createDecryptionCipher(e, 64); }; break; case "RC2-128-CBC": o = 16, c = function (e) { return a.rc2.createDecryptionCipher(e, 128); }; break; default: var u; throw (u = new Error('Could not decrypt private key; unsupported encryption algorithm "' + n.dekInfo.algorithm + '".')).algorithm = n.dekInfo.algorithm, u; } var l = a.util.hexToBytes(n.dekInfo.parameters), p = c(a.pbe.opensslDeriveBytes(t, l.substr(0, 8), o)); if (p.start(l), p.update(a.util.createBuffer(n.body)), !p.finish()) return r; r = p.output.getBytes(); } else r = n.body; return null !== (r = "ENCRYPTED PRIVATE KEY" === n.type ? s.decryptPrivateKeyInfo(i.fromDer(r), t) : i.fromDer(r)) && (r = s.privateKeyFromAsn1(r)), r; }, s.pbe.generatePkcs12Key = function (e, t, r, n, i, s) { var o, c; if (null == s) { if (!("sha1" in a.md)) throw new Error('"sha1" hash algorithm unavailable.'); s = a.md.sha1.create(); } var u = s.digestLength, l = s.blockLength, p = new a.util.ByteBuffer(), f = new a.util.ByteBuffer(); if (null != e) { for (c = 0; c < e.length; c++) f.putInt16(e.charCodeAt(c)); f.putInt16(0); } var h = f.length(), d = t.length(), y = new a.util.ByteBuffer(); y.fillWithByte(r, l); var g = l * Math.ceil(d / l), m = new a.util.ByteBuffer(); for (c = 0; c < g; c++) m.putByte(t.at(c % d)); var v = l * Math.ceil(h / l), C = new a.util.ByteBuffer(); for (c = 0; c < v; c++) C.putByte(f.at(c % h)); var E = m; E.putBuffer(C); for (var S = Math.ceil(i / u), T = 1; T <= S; T++) { var I = new a.util.ByteBuffer(); I.putBytes(y.bytes()), I.putBytes(E.bytes()); for (var A = 0; A < n; A++) s.start(), s.update(I.getBytes()), I = s.digest(); var B = new a.util.ByteBuffer(); for (c = 0; c < l; c++) B.putByte(I.at(c % u)); var b = Math.ceil(d / l) + Math.ceil(h / l), N = new a.util.ByteBuffer(); for (o = 0; o < b; o++) { var R = new a.util.ByteBuffer(E.getBytes(l)), w = 511; for (c = B.length() - 1; c >= 0; c--) w >>= 8, w += B.at(c) + R.at(c), R.setAt(c, 255 & w); N.putBuffer(R); } E = N, p.putBuffer(I); } return p.truncate(p.length() - i), p; }, s.pbe.getCipher = function (e, t, r) { switch (e) { case s.oids.pkcs5PBES2: return s.pbe.getCipherForPBES2(e, t, r); case s.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]: case s.oids["pbewithSHAAnd40BitRC2-CBC"]: return s.pbe.getCipherForPKCS12PBE(e, t, r); default: var a = new Error("Cannot read encrypted PBE data block. Unsupported OID."); throw a.oid = e, a.supportedOids = ["pkcs5PBES2", "pbeWithSHAAnd3-KeyTripleDES-CBC", "pbewithSHAAnd40BitRC2-CBC"], a; } }, s.pbe.getCipherForPBES2 = function (e, t, r) { var n, o = {}, c = []; if (!i.validate(t, u, o, c)) throw (n = new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.")).errors = c, n; if ((e = i.derToOid(o.kdfOid)) !== s.oids.pkcs5PBKDF2) throw (n = new Error("Cannot read encrypted private key. Unsupported key derivation function OID.")).oid = e, n.supportedOids = ["pkcs5PBKDF2"], n; if ((e = i.derToOid(o.encOid)) !== s.oids["aes128-CBC"] && e !== s.oids["aes192-CBC"] && e !== s.oids["aes256-CBC"] && e !== s.oids["des-EDE3-CBC"] && e !== s.oids.desCBC) throw (n = new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.")).oid = e, n.supportedOids = ["aes128-CBC", "aes192-CBC", "aes256-CBC", "des-EDE3-CBC", "desCBC"], n; var l, p, h = o.kdfSalt, d = a.util.createBuffer(o.kdfIterationCount); switch (d = d.getInt(d.length() << 3), s.oids[e]) { case "aes128-CBC": l = 16, p = a.aes.createDecryptionCipher; break; case "aes192-CBC": l = 24, p = a.aes.createDecryptionCipher; break; case "aes256-CBC": l = 32, p = a.aes.createDecryptionCipher; break; case "des-EDE3-CBC": l = 24, p = a.des.createDecryptionCipher; break; case "desCBC": l = 8, p = a.des.createDecryptionCipher; } var y = f(o.prfOid), g = a.pkcs5.pbkdf2(r, h, d, l, y), m = o.encIv, v = p(g); return v.start(m), v; }, s.pbe.getCipherForPKCS12PBE = function (e, t, r) { var n = {}, o = []; if (!i.validate(t, l, n, o)) throw (y = new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.")).errors = o, y; var c, u, p, h = a.util.createBuffer(n.salt), d = a.util.createBuffer(n.iterations); switch (d = d.getInt(d.length() << 3), e) { case s.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]: c = 24, u = 8, p = a.des.startDecrypting; break; case s.oids["pbewithSHAAnd40BitRC2-CBC"]: c = 5, u = 8, p = function (e, t) { var r = a.rc2.createDecryptionCipher(e, 40); return r.start(t, null), r; }; break; default: var y; throw (y = new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.")).oid = e, y; } var g = f(n.prfOid), m = s.pbe.generatePkcs12Key(r, h, 1, d, c, g); return g.start(), p(m, s.pbe.generatePkcs12Key(r, h, 2, d, u, g)); }, s.pbe.opensslDeriveBytes = function (e, t, r, n) { if (null == n) { if (!("md5" in a.md)) throw new Error('"md5" hash algorithm unavailable.'); n = a.md.md5.create(); } null === t && (t = ""); for (var i = [p(n, e + t)], s = 16, o = 1; s < r; ++o, s += 16) i.push(p(n, i[o - 1] + e + t)); return i.join("").substr(0, r); }; }, function (e, t, r) { var a = r(0); r(4), r(1); var n = e.exports = a.sha256 = a.sha256 || {}; a.md.sha256 = a.md.algorithms.sha256 = n, n.create = function () { s || (i = String.fromCharCode(128), i += a.util.fillString(String.fromCharCode(0), 64), o = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298], s = !0); var e = null, t = a.util.createBuffer(), r = new Array(64), n = { algorithm: "sha256", blockLength: 64, digestLength: 32, messageLength: 0, fullMessageLength: null, messageLengthSize: 8, start: function () { n.messageLength = 0, n.fullMessageLength = n.messageLength64 = []; for (var r = n.messageLengthSize / 4, i = 0; i < r; ++i) n.fullMessageLength.push(0); return t = a.util.createBuffer(), e = { h0: 1779033703, h1: 3144134277, h2: 1013904242, h3: 2773480762, h4: 1359893119, h5: 2600822924, h6: 528734635, h7: 1541459225 }, n; } }; return n.start(), n.update = function (i, s) { "utf8" === s && (i = a.util.encodeUtf8(i)); var o = i.length; n.messageLength += o, o = [o / 4294967296 >>> 0, o >>> 0]; for (var u = n.fullMessageLength.length - 1; u >= 0; --u) n.fullMessageLength[u] += o[1], o[1] = o[0] + (n.fullMessageLength[u] / 4294967296 >>> 0), n.fullMessageLength[u] = n.fullMessageLength[u] >>> 0, o[0] = o[1] / 4294967296 >>> 0; return t.putBytes(i), c(e, r, t), (t.read > 2048 || 0 === t.length()) && t.compact(), n; }, n.digest = function () { var s = a.util.createBuffer(); s.putBytes(t.bytes()); var o, u = n.fullMessageLength[n.fullMessageLength.length - 1] + n.messageLengthSize & n.blockLength - 1; s.putBytes(i.substr(0, n.blockLength - u)); for (var l = 8 * n.fullMessageLength[0], p = 0; p < n.fullMessageLength.length - 1; ++p) l += (o = 8 * n.fullMessageLength[p + 1]) / 4294967296 >>> 0, s.putInt32(l >>> 0), l = o >>> 0; s.putInt32(l); var f = { h0: e.h0, h1: e.h1, h2: e.h2, h3: e.h3, h4: e.h4, h5: e.h5, h6: e.h6, h7: e.h7 }; c(f, r, s); var h = a.util.createBuffer(); return h.putInt32(f.h0), h.putInt32(f.h1), h.putInt32(f.h2), h.putInt32(f.h3), h.putInt32(f.h4), h.putInt32(f.h5), h.putInt32(f.h6), h.putInt32(f.h7), h; }, n; }; var i = null, s = !1, o = null; function c(e, t, r) { for (var a, n, i, s, c, u, l, p, f, h, d, y, g, m = r.length(); m >= 64;) { for (c = 0; c < 16; ++c) t[c] = r.getInt32(); for (; c < 64; ++c) a = ((a = t[c - 2]) >>> 17 | a << 15) ^ (a >>> 19 | a << 13) ^ a >>> 10, n = ((n = t[c - 15]) >>> 7 | n << 25) ^ (n >>> 18 | n << 14) ^ n >>> 3, t[c] = a + t[c - 7] + n + t[c - 16] | 0; for (u = e.h0, l = e.h1, p = e.h2, f = e.h3, h = e.h4, d = e.h5, y = e.h6, g = e.h7, c = 0; c < 64; ++c) i = (u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10), s = u & l | p & (u ^ l), a = g + ((h >>> 6 | h << 26) ^ (h >>> 11 | h << 21) ^ (h >>> 25 | h << 7)) + (y ^ h & (d ^ y)) + o[c] + t[c], g = y, y = d, d = h, h = f + a >>> 0, f = p, p = l, l = u, u = a + (n = i + s) >>> 0; e.h0 = e.h0 + u | 0, e.h1 = e.h1 + l | 0, e.h2 = e.h2 + p | 0, e.h3 = e.h3 + f | 0, e.h4 = e.h4 + h | 0, e.h5 = e.h5 + d | 0, e.h6 = e.h6 + y | 0, e.h7 = e.h7 + g | 0, m -= 64; } } }, function (e, t, r) { var a = r(0); r(1); var n = null; !a.util.isNodejs || a.options.usePureJavaScript || process.versions["node-webkit"] || (n = r(16)), (e.exports = a.prng = a.prng || {}).create = function (e) { for (var t = { plugin: e, key: null, seed: null, time: null, reseeds: 0, generated: 0, keyBytes: "" }, r = e.md, i = new Array(32), s = 0; s < 32; ++s) i[s] = r.create(); function o() { if (t.pools[0].messageLength >= 32) return c(); var e = 32 - t.pools[0].messageLength << 5; t.collect(t.seedFileSync(e)), c(); } function c() { t.reseeds = 4294967295 === t.reseeds ? 0 : t.reseeds + 1; var e = t.plugin.md.create(); e.update(t.keyBytes); for (var r = 1, a = 0; a < 32; ++a) t.reseeds % r == 0 && (e.update(t.pools[a].digest().getBytes()), t.pools[a].start()), r <<= 1; t.keyBytes = e.digest().getBytes(), e.start(), e.update(t.keyBytes); var n = e.digest().getBytes(); t.key = t.plugin.formatKey(t.keyBytes), t.seed = t.plugin.formatSeed(n), t.generated = 0; } function u(e) { var t = null, r = a.util.globalScope, n = r.crypto || r.msCrypto; n && n.getRandomValues && (t = function (e) { return n.getRandomValues(e); }); var i = a.util.createBuffer(); if (t) for (; i.length() < e;) { var s = Math.max(1, Math.min(e - i.length(), 65536) / 4), o = new Uint32Array(Math.floor(s)); try { t(o); for (var c = 0; c < o.length; ++c) i.putInt32(o[c]); } catch (e) { if (!("undefined" != typeof QuotaExceededError && e instanceof QuotaExceededError)) throw e; } } if (i.length() < e) for (var u, l, p, f = Math.floor(65536 * Math.random()); i.length() < e;) { l = 16807 * (65535 & f), l += (32767 & (u = 16807 * (f >> 16))) << 16, f = 4294967295 & (l = (2147483647 & (l += u >> 15)) + (l >> 31)); for (c = 0; c < 3; ++c) p = f >>> (c << 3), p ^= Math.floor(256 * Math.random()), i.putByte(255 & p); } return i.getBytes(e); } return t.pools = i, t.pool = 0, t.generate = function (e, r) { if (!r) return t.generateSync(e); var n = t.plugin.cipher, i = t.plugin.increment, s = t.plugin.formatKey, o = t.plugin.formatSeed, u = a.util.createBuffer(); t.key = null, function l(p) { if (p) return r(p); if (u.length() >= e) return r(null, u.getBytes(e)); t.generated > 1048575 && (t.key = null); if (null === t.key) return a.util.nextTick(function () { !function (e) { if (t.pools[0].messageLength >= 32) return c(), e(); var r = 32 - t.pools[0].messageLength << 5; t.seedFile(r, function (r, a) { if (r) return e(r); t.collect(a), c(), e(); }); }(l); }); var f = n(t.key, t.seed); t.generated += f.length, u.putBytes(f), t.key = s(n(t.key, i(t.seed))), t.seed = o(n(t.key, t.seed)), a.util.setImmediate(l); }(); }, t.generateSync = function (e) { var r = t.plugin.cipher, n = t.plugin.increment, i = t.plugin.formatKey, s = t.plugin.formatSeed; t.key = null; for (var c = a.util.createBuffer(); c.length() < e;) { t.generated > 1048575 && (t.key = null), null === t.key && o(); var u = r(t.key, t.seed); t.generated += u.length, c.putBytes(u), t.key = i(r(t.key, n(t.seed))), t.seed = s(r(t.key, t.seed)); } return c.getBytes(e); }, n ? (t.seedFile = function (e, t) { n.randomBytes(e, function (e, r) { if (e) return t(e); t(null, r.toString()); }); }, t.seedFileSync = function (e) { return n.randomBytes(e).toString(); }) : (t.seedFile = function (e, t) { try { t(null, u(e)); } catch (e) { t(e); } }, t.seedFileSync = u), t.collect = function (e) { for (var r = e.length, a = 0; a < r; ++a) t.pools[t.pool].update(e.substr(a, 1)), t.pool = 31 === t.pool ? 0 : t.pool + 1; }, t.collectInt = function (e, r) { for (var a = "", n = 0; n < r; n += 8) a += String.fromCharCode(e >> n & 255); t.collect(a); }, t.registerWorker = function (e) { if (e === self) t.seedFile = function (e, t) { self.addEventListener("message", function e(r) { var a = r.data; a.forge && a.forge.prng && (self.removeEventListener("message", e), t(a.forge.prng.err, a.forge.prng.bytes)); }), self.postMessage({ forge: { prng: { needed: e } } }); };else { e.addEventListener("message", function (r) { var a = r.data; a.forge && a.forge.prng && t.seedFile(a.forge.prng.needed, function (t, r) { e.postMessage({ forge: { prng: { err: t, bytes: r } } }); }); }); } }, t; }; }, function (e, t, r) { var a = r(0); r(1); var n = [217, 120, 249, 196, 25, 221, 181, 237, 40, 233, 253, 121, 74, 160, 216, 157, 198, 126, 55, 131, 43, 118, 83, 142, 98, 76, 100, 136, 68, 139, 251, 162, 23, 154, 89, 245, 135, 179, 79, 19, 97, 69, 109, 141, 9, 129, 125, 50, 189, 143, 64, 235, 134, 183, 123, 11, 240, 149, 33, 34, 92, 107, 78, 130, 84, 214, 101, 147, 206, 96, 178, 28, 115, 86, 192, 20, 167, 140, 241, 220, 18, 117, 202, 31, 59, 190, 228, 209, 66, 61, 212, 48, 163, 60, 182, 38, 111, 191, 14, 218, 70, 105, 7, 87, 39, 242, 29, 155, 188, 148, 67, 3, 248, 17, 199, 246, 144, 239, 62, 231, 6, 195, 213, 47, 200, 102, 30, 215, 8, 232, 234, 222, 128, 82, 238, 247, 132, 170, 114, 172, 53, 77, 106, 42, 150, 26, 210, 113, 90, 21, 73, 116, 75, 159, 208, 94, 4, 24, 164, 236, 194, 224, 65, 110, 15, 81, 203, 204, 36, 145, 175, 80, 161, 244, 112, 57, 153, 124, 58, 133, 35, 184, 180, 122, 252, 2, 54, 91, 37, 85, 151, 49, 45, 93, 250, 152, 227, 138, 146, 174, 5, 223, 41, 16, 103, 108, 186, 201, 211, 0, 230, 207, 225, 158, 168, 44, 99, 22, 1, 63, 88, 226, 137, 169, 13, 56, 52, 27, 171, 51, 255, 176, 187, 72, 12, 95, 185, 177, 205, 46, 197, 243, 219, 71, 229, 165, 156, 119, 10, 166, 32, 104, 254, 127, 193, 173], i = [1, 2, 3, 5], s = function (e, t) { return e << t & 65535 | (65535 & e) >> 16 - t; }, o = function (e, t) { return (65535 & e) >> t | e << 16 - t & 65535; }; e.exports = a.rc2 = a.rc2 || {}, a.rc2.expandKey = function (e, t) { "string" == typeof e && (e = a.util.createBuffer(e)), t = t || 128; var r, i = e, s = e.length(), o = t, c = Math.ceil(o / 8), u = 255 >> (7 & o); for (r = s; r < 128; r++) i.putByte(n[i.at(r - 1) + i.at(r - s) & 255]); for (i.setAt(128 - c, n[i.at(128 - c) & u]), r = 127 - c; r >= 0; r--) i.setAt(r, n[i.at(r + 1) ^ i.at(r + c)]); return i; }; var c = function (e, t, r) { var n, c, u, l, p = !1, f = null, h = null, d = null, y = []; for (e = a.rc2.expandKey(e, t), u = 0; u < 64; u++) y.push(e.getInt16Le()); r ? (n = function (e) { for (u = 0; u < 4; u++) e[u] += y[l] + (e[(u + 3) % 4] & e[(u + 2) % 4]) + (~e[(u + 3) % 4] & e[(u + 1) % 4]), e[u] = s(e[u], i[u]), l++; }, c = function (e) { for (u = 0; u < 4; u++) e[u] += y[63 & e[(u + 3) % 4]]; }) : (n = function (e) { for (u = 3; u >= 0; u--) e[u] = o(e[u], i[u]), e[u] -= y[l] + (e[(u + 3) % 4] & e[(u + 2) % 4]) + (~e[(u + 3) % 4] & e[(u + 1) % 4]), l--; }, c = function (e) { for (u = 3; u >= 0; u--) e[u] -= y[63 & e[(u + 3) % 4]]; }); var g = function (e) { var t = []; for (u = 0; u < 4; u++) { var a = f.getInt16Le(); null !== d && (r ? a ^= d.getInt16Le() : d.putInt16Le(a)), t.push(65535 & a); } l = r ? 0 : 63; for (var n = 0; n < e.length; n++) for (var i = 0; i < e[n][0]; i++) e[n][1](t); for (u = 0; u < 4; u++) null !== d && (r ? d.putInt16Le(t[u]) : t[u] ^= d.getInt16Le()), h.putInt16Le(t[u]); }, m = null; return m = { start: function (e, t) { e && "string" == typeof e && (e = a.util.createBuffer(e)), p = !1, f = a.util.createBuffer(), h = t || new a.util.createBuffer(), d = e, m.output = h; }, update: function (e) { for (p || f.putBuffer(e); f.length() >= 8;) g([[5, n], [1, c], [6, n], [1, c], [5, n]]); }, finish: function (e) { var t = !0; if (r) if (e) t = e(8, f, !r);else { var a = 8 === f.length() ? 8 : 8 - f.length(); f.fillWithByte(a, a); } if (t && (p = !0, m.update()), !r && (t = 0 === f.length())) if (e) t = e(8, h, !r);else { var n = h.length(), i = h.at(n - 1); i > n ? t = !1 : h.truncate(i); } return t; } }; }; a.rc2.startEncrypting = function (e, t, r) { var n = a.rc2.createEncryptionCipher(e, 128); return n.start(t, r), n; }, a.rc2.createEncryptionCipher = function (e, t) { return c(e, t, !0); }, a.rc2.startDecrypting = function (e, t, r) { var n = a.rc2.createDecryptionCipher(e, 128); return n.start(t, r), n; }, a.rc2.createDecryptionCipher = function (e, t) { return c(e, t, !1); }; }, function (e, t, r) { var a = r(0); r(1), r(2), r(9); var n = e.exports = a.pkcs1 = a.pkcs1 || {}; function i(e, t, r) { r || (r = a.md.sha1.create()); for (var n = "", i = Math.ceil(t / r.digestLength), s = 0; s < i; ++s) { var o = String.fromCharCode(s >> 24 & 255, s >> 16 & 255, s >> 8 & 255, 255 & s); r.start(), r.update(e + o), n += r.digest().getBytes(); } return n.substring(0, t); } n.encode_rsa_oaep = function (e, t, r) { var n, s, o, c; "string" == typeof r ? (n = r, s = arguments[3] || void 0, o = arguments[4] || void 0) : r && (n = r.label || void 0, s = r.seed || void 0, o = r.md || void 0, r.mgf1 && r.mgf1.md && (c = r.mgf1.md)), o ? o.start() : o = a.md.sha1.create(), c || (c = o); var u = Math.ceil(e.n.bitLength() / 8), l = u - 2 * o.digestLength - 2; if (t.length > l) throw (g = new Error("RSAES-OAEP input message length is too long.")).length = t.length, g.maxLength = l, g; n || (n = ""), o.update(n, "raw"); for (var p = o.digest(), f = "", h = l - t.length, d = 0; d < h; d++) f += "\0"; var y = p.getBytes() + f + "" + t; if (s) { if (s.length !== o.digestLength) { var g; throw (g = new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.")).seedLength = s.length, g.digestLength = o.digestLength, g; } } else s = a.random.getBytes(o.digestLength); var m = i(s, u - o.digestLength - 1, c), v = a.util.xorBytes(y, m, y.length), C = i(v, o.digestLength, c), E = a.util.xorBytes(s, C, s.length); return "\0" + E + v; }, n.decode_rsa_oaep = function (e, t, r) { var n, s, o; "string" == typeof r ? (n = r, s = arguments[3] || void 0) : r && (n = r.label || void 0, s = r.md || void 0, r.mgf1 && r.mgf1.md && (o = r.mgf1.md)); var c = Math.ceil(e.n.bitLength() / 8); if (t.length !== c) throw (v = new Error("RSAES-OAEP encoded message length is invalid.")).length = t.length, v.expectedLength = c, v; if (void 0 === s ? s = a.md.sha1.create() : s.start(), o || (o = s), c < 2 * s.digestLength + 2) throw new Error("RSAES-OAEP key is too short for the hash function."); n || (n = ""), s.update(n, "raw"); for (var u = s.digest().getBytes(), l = t.charAt(0), p = t.substring(1, s.digestLength + 1), f = t.substring(1 + s.digestLength), h = i(f, s.digestLength, o), d = a.util.xorBytes(p, h, p.length), y = i(d, c - s.digestLength - 1, o), g = a.util.xorBytes(f, y, f.length), m = g.substring(0, s.digestLength), v = "\0" !== l, C = 0; C < s.digestLength; ++C) v |= u.charAt(C) !== m.charAt(C); for (var E = 1, S = s.digestLength, T = s.digestLength; T < g.length; T++) { var I = g.charCodeAt(T), A = 1 & I ^ 1, B = E ? 65534 : 0; v |= I & B, S += E &= A; } if (v || 1 !== g.charCodeAt(S)) throw new Error("Invalid RSAES-OAEP padding."); return g.substring(S + 1); }; }, function (e, t, r) { var a = r(0); r(1), r(12), r(2), function () { if (a.prime) e.exports = a.prime;else { var t = e.exports = a.prime = a.prime || {}, r = a.jsbn.BigInteger, n = [6, 4, 2, 4, 2, 4, 6, 2], i = new r(null); i.fromInt(30); var s = function (e, t) { return e | t; }; t.generateProbablePrime = function (e, t, n) { "function" == typeof t && (n = t, t = {}); var i = (t = t || {}).algorithm || "PRIMEINC"; "string" == typeof i && (i = { name: i }), i.options = i.options || {}; var s = t.prng || a.random, u = { nextBytes: function (e) { for (var t = s.getBytesSync(e.length), r = 0; r < e.length; ++r) e[r] = t.charCodeAt(r); } }; if ("PRIMEINC" === i.name) return function (e, t, n, i) { if ("workers" in n) return function (e, t, n, i) { if ("undefined" == typeof Worker) return o(e, t, n, i); var s = c(e, t), u = n.workers, l = n.workLoad || 100, p = 30 * l / 8, f = n.workerScript || "forge/prime.worker.js"; if (-1 === u) return a.util.estimateCores(function (e, t) { e && (t = 2), u = t - 1, h(); }); function h() { u = Math.max(1, u); for (var a = [], n = 0; n < u; ++n) a[n] = new Worker(f); for (n = 0; n < u; ++n) a[n].addEventListener("message", h); var o = !1; function h(n) { if (!o) { 0; var u = n.data; if (u.found) { for (var f = 0; f < a.length; ++f) a[f].terminate(); return o = !0, i(null, new r(u.prime, 16)); } s.bitLength() > e && (s = c(e, t)); var h = s.toString(16); n.target.postMessage({ hex: h, workLoad: l }), s.dAddOffset(p, 0); } } } h(); }(e, t, n, i); return o(e, t, n, i); }(e, u, i.options, n); throw new Error("Invalid prime generation algorithm: " + i.name); }; } function o(e, t, r, i) { var s = c(e, t), o = function (e) { return e <= 100 ? 27 : e <= 150 ? 18 : e <= 200 ? 15 : e <= 250 ? 12 : e <= 300 ? 9 : e <= 350 ? 8 : e <= 400 ? 7 : e <= 500 ? 6 : e <= 600 ? 5 : e <= 800 ? 4 : e <= 1250 ? 3 : 2; }(s.bitLength()); "millerRabinTests" in r && (o = r.millerRabinTests); var u = 10; "maxBlockTime" in r && (u = r.maxBlockTime), function e(t, r, i, s, o, u, l) { var p = +new Date(); do { if (t.bitLength() > r && (t = c(r, i)), t.isProbablePrime(o)) return l(null, t); t.dAddOffset(n[s++ % 8], 0); } while (u < 0 || +new Date() - p < u); a.util.setImmediate(function () { e(t, r, i, s, o, u, l); }); }(s, e, t, 0, o, u, i); } function c(e, t) { var a = new r(e, t), n = e - 1; return a.testBit(n) || a.bitwiseTo(r.ONE.shiftLeft(n), s, a), a.dAddOffset(31 - a.mod(i).byteValue(), 0), a; } }(); }, function (e, t, r) { var a = r(0); r(3), r(8), r(6), r(29), r(22), r(2), r(11), r(9), r(1), r(17); var n = a.asn1, i = a.pki, s = e.exports = a.pkcs12 = a.pkcs12 || {}, o = { name: "ContentInfo", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "ContentInfo.contentType", tagClass: n.Class.UNIVERSAL, type: n.Type.OID, constructed: !1, capture: "contentType" }, { name: "ContentInfo.content", tagClass: n.Class.CONTEXT_SPECIFIC, constructed: !0, captureAsn1: "content" }] }, c = { name: "PFX", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "PFX.version", tagClass: n.Class.UNIVERSAL, type: n.Type.INTEGER, constructed: !1, capture: "version" }, o, { name: "PFX.macData", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, optional: !0, captureAsn1: "mac", value: [{ name: "PFX.macData.mac", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "PFX.macData.mac.digestAlgorithm", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "PFX.macData.mac.digestAlgorithm.algorithm", tagClass: n.Class.UNIVERSAL, type: n.Type.OID, constructed: !1, capture: "macAlgorithm" }, { name: "PFX.macData.mac.digestAlgorithm.parameters", tagClass: n.Class.UNIVERSAL, captureAsn1: "macAlgorithmParameters" }] }, { name: "PFX.macData.mac.digest", tagClass: n.Class.UNIVERSAL, type: n.Type.OCTETSTRING, constructed: !1, capture: "macDigest" }] }, { name: "PFX.macData.macSalt", tagClass: n.Class.UNIVERSAL, type: n.Type.OCTETSTRING, constructed: !1, capture: "macSalt" }, { name: "PFX.macData.iterations", tagClass: n.Class.UNIVERSAL, type: n.Type.INTEGER, constructed: !1, optional: !0, capture: "macIterations" }] }] }, u = { name: "SafeBag", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "SafeBag.bagId", tagClass: n.Class.UNIVERSAL, type: n.Type.OID, constructed: !1, capture: "bagId" }, { name: "SafeBag.bagValue", tagClass: n.Class.CONTEXT_SPECIFIC, constructed: !0, captureAsn1: "bagValue" }, { name: "SafeBag.bagAttributes", tagClass: n.Class.UNIVERSAL, type: n.Type.SET, constructed: !0, optional: !0, capture: "bagAttributes" }] }, l = { name: "Attribute", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "Attribute.attrId", tagClass: n.Class.UNIVERSAL, type: n.Type.OID, constructed: !1, capture: "oid" }, { name: "Attribute.attrValues", tagClass: n.Class.UNIVERSAL, type: n.Type.SET, constructed: !0, capture: "values" }] }, p = { name: "CertBag", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "CertBag.certId", tagClass: n.Class.UNIVERSAL, type: n.Type.OID, constructed: !1, capture: "certId" }, { name: "CertBag.certValue", tagClass: n.Class.CONTEXT_SPECIFIC, constructed: !0, value: [{ name: "CertBag.certValue[0]", tagClass: n.Class.UNIVERSAL, type: n.Class.OCTETSTRING, constructed: !1, capture: "cert" }] }] }; function f(e, t, r, a) { for (var n = [], i = 0; i < e.length; i++) for (var s = 0; s < e[i].safeBags.length; s++) { var o = e[i].safeBags[s]; void 0 !== a && o.type !== a || (null !== t ? void 0 !== o.attributes[t] && o.attributes[t].indexOf(r) >= 0 && n.push(o) : n.push(o)); } return n; } function h(e) { if (e.composed || e.constructed) { for (var t = a.util.createBuffer(), r = 0; r < e.value.length; ++r) t.putBytes(e.value[r].value); e.composed = e.constructed = !1, e.value = t.getBytes(); } return e; } function d(e, t) { var r = {}, s = []; if (!n.validate(e, a.pkcs7.asn1.encryptedDataValidator, r, s)) throw (o = new Error("Cannot read EncryptedContentInfo.")).errors = s, o; var o, c = n.derToOid(r.contentType); if (c !== i.oids.data) throw (o = new Error("PKCS#12 EncryptedContentInfo ContentType is not Data.")).oid = c, o; c = n.derToOid(r.encAlgorithm); var u = i.pbe.getCipher(c, r.encParameter, t), l = h(r.encryptedContentAsn1), p = a.util.createBuffer(l.value); if (u.update(p), !u.finish()) throw new Error("Failed to decrypt PKCS#12 SafeContents."); return u.output.getBytes(); } function y(e, t, r) { if (!t && 0 === e.length) return []; if ((e = n.fromDer(e, t)).tagClass !== n.Class.UNIVERSAL || e.type !== n.Type.SEQUENCE || !0 !== e.constructed) throw new Error("PKCS#12 SafeContents expected to be a SEQUENCE OF SafeBag."); for (var a = [], s = 0; s < e.value.length; s++) { var o = e.value[s], c = {}, l = []; if (!n.validate(o, u, c, l)) throw (m = new Error("Cannot read SafeBag.")).errors = l, m; var f, h, d = { type: n.derToOid(c.bagId), attributes: g(c.bagAttributes) }; a.push(d); var y = c.bagValue.value[0]; switch (d.type) { case i.oids.pkcs8ShroudedKeyBag: if (null === (y = i.decryptPrivateKeyInfo(y, r))) throw new Error("Unable to decrypt PKCS#8 ShroudedKeyBag, wrong password?"); case i.oids.keyBag: try { d.key = i.privateKeyFromAsn1(y); } catch (e) { d.key = null, d.asn1 = y; } continue; case i.oids.certBag: f = p, h = function () { if (n.derToOid(c.certId) !== i.oids.x509Certificate) { var e = new Error("Unsupported certificate type, only X.509 supported."); throw e.oid = n.derToOid(c.certId), e; } var r = n.fromDer(c.cert, t); try { d.cert = i.certificateFromAsn1(r, !0); } catch (e) { d.cert = null, d.asn1 = r; } }; break; default: var m; throw (m = new Error("Unsupported PKCS#12 SafeBag type.")).oid = d.type, m; } if (void 0 !== f && !n.validate(y, f, c, l)) throw (m = new Error("Cannot read PKCS#12 " + f.name)).errors = l, m; h(); } return a; } function g(e) { var t = {}; if (void 0 !== e) for (var r = 0; r < e.length; ++r) { var a = {}, s = []; if (!n.validate(e[r], l, a, s)) { var o = new Error("Cannot read PKCS#12 BagAttribute."); throw o.errors = s, o; } var c = n.derToOid(a.oid); if (void 0 !== i.oids[c]) { t[i.oids[c]] = []; for (var u = 0; u < a.values.length; ++u) t[i.oids[c]].push(a.values[u].value); } } return t; } s.pkcs12FromAsn1 = function (e, t, r) { "string" == typeof t ? (r = t, t = !0) : void 0 === t && (t = !0); var u = {}; if (!n.validate(e, c, u, [])) throw (l = new Error("Cannot read PKCS#12 PFX. ASN.1 object is not an PKCS#12 PFX.")).errors = l, l; var l, p = { version: u.version.charCodeAt(0), safeContents: [], getBags: function (e) { var t, r = {}; return "localKeyId" in e ? t = e.localKeyId : "localKeyIdHex" in e && (t = a.util.hexToBytes(e.localKeyIdHex)), void 0 === t && !("friendlyName" in e) && "bagType" in e && (r[e.bagType] = f(p.safeContents, null, null, e.bagType)), void 0 !== t && (r.localKeyId = f(p.safeContents, "localKeyId", t, e.bagType)), "friendlyName" in e && (r.friendlyName = f(p.safeContents, "friendlyName", e.friendlyName, e.bagType)), r; }, getBagsByFriendlyName: function (e, t) { return f(p.safeContents, "friendlyName", e, t); }, getBagsByLocalKeyId: function (e, t) { return f(p.safeContents, "localKeyId", e, t); } }; if (3 !== u.version.charCodeAt(0)) throw (l = new Error("PKCS#12 PFX of version other than 3 not supported.")).version = u.version.charCodeAt(0), l; if (n.derToOid(u.contentType) !== i.oids.data) throw (l = new Error("Only PKCS#12 PFX in password integrity mode supported.")).oid = n.derToOid(u.contentType), l; var g = u.content.value[0]; if (g.tagClass !== n.Class.UNIVERSAL || g.type !== n.Type.OCTETSTRING) throw new Error("PKCS#12 authSafe content data is not an OCTET STRING."); if (g = h(g), u.mac) { var m = null, v = 0, C = n.derToOid(u.macAlgorithm); switch (C) { case i.oids.sha1: m = a.md.sha1.create(), v = 20; break; case i.oids.sha256: m = a.md.sha256.create(), v = 32; break; case i.oids.sha384: m = a.md.sha384.create(), v = 48; break; case i.oids.sha512: m = a.md.sha512.create(), v = 64; break; case i.oids.md5: m = a.md.md5.create(), v = 16; } if (null === m) throw new Error("PKCS#12 uses unsupported MAC algorithm: " + C); var E = new a.util.ByteBuffer(u.macSalt), S = "macIterations" in u ? parseInt(a.util.bytesToHex(u.macIterations), 16) : 1, T = s.generateKey(r, E, 3, S, v, m), I = a.hmac.create(); if (I.start(m, T), I.update(g.value), I.getMac().getBytes() !== u.macDigest) throw new Error("PKCS#12 MAC could not be verified. Invalid password?"); } return function (e, t, r, a) { if ((t = n.fromDer(t, r)).tagClass !== n.Class.UNIVERSAL || t.type !== n.Type.SEQUENCE || !0 !== t.constructed) throw new Error("PKCS#12 AuthenticatedSafe expected to be a SEQUENCE OF ContentInfo"); for (var s = 0; s < t.value.length; s++) { var c = t.value[s], u = {}, l = []; if (!n.validate(c, o, u, l)) throw (m = new Error("Cannot read ContentInfo.")).errors = l, m; var p = { encrypted: !1 }, f = null, g = u.content.value[0]; switch (n.derToOid(u.contentType)) { case i.oids.data: if (g.tagClass !== n.Class.UNIVERSAL || g.type !== n.Type.OCTETSTRING) throw new Error("PKCS#12 SafeContents Data is not an OCTET STRING."); f = h(g).value; break; case i.oids.encryptedData: f = d(g, a), p.encrypted = !0; break; default: var m; throw (m = new Error("Unsupported PKCS#12 contentType.")).contentType = n.derToOid(u.contentType), m; } p.safeBags = y(f, r, a), e.safeContents.push(p); } }(p, g.value, t, r), p; }, s.toPkcs12Asn1 = function (e, t, r, o) { (o = o || {}).saltSize = o.saltSize || 8, o.count = o.count || 2048, o.algorithm = o.algorithm || o.encAlgorithm || "aes128", "useMac" in o || (o.useMac = !0), "localKeyId" in o || (o.localKeyId = null), "generateLocalKeyId" in o || (o.generateLocalKeyId = !0); var c, u = o.localKeyId; if (null !== u) u = a.util.hexToBytes(u);else if (o.generateLocalKeyId) if (t) { var l = a.util.isArray(t) ? t[0] : t; "string" == typeof l && (l = i.certificateFromPem(l)), (N = a.md.sha1.create()).update(n.toDer(i.certificateToAsn1(l)).getBytes()), u = N.digest().getBytes(); } else u = a.random.getBytes(20); var p = []; null !== u && p.push(n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(i.oids.localKeyId).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.SET, !0, [n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, u)])])), "friendlyName" in o && p.push(n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(i.oids.friendlyName).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.SET, !0, [n.create(n.Class.UNIVERSAL, n.Type.BMPSTRING, !1, o.friendlyName)])])), p.length > 0 && (c = n.create(n.Class.UNIVERSAL, n.Type.SET, !0, p)); var f = [], h = []; null !== t && (h = a.util.isArray(t) ? t : [t]); for (var d = [], y = 0; y < h.length; ++y) { "string" == typeof (t = h[y]) && (t = i.certificateFromPem(t)); var g = 0 === y ? c : void 0, m = i.certificateToAsn1(t), v = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(i.oids.certBag).getBytes()), n.create(n.Class.CONTEXT_SPECIFIC, 0, !0, [n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(i.oids.x509Certificate).getBytes()), n.create(n.Class.CONTEXT_SPECIFIC, 0, !0, [n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, n.toDer(m).getBytes())])])]), g]); d.push(v); } if (d.length > 0) { var C = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, d), E = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(i.oids.data).getBytes()), n.create(n.Class.CONTEXT_SPECIFIC, 0, !0, [n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, n.toDer(C).getBytes())])]); f.push(E); } var S = null; if (null !== e) { var T = i.wrapRsaPrivateKey(i.privateKeyToAsn1(e)); S = null === r ? n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(i.oids.keyBag).getBytes()), n.create(n.Class.CONTEXT_SPECIFIC, 0, !0, [T]), c]) : n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(i.oids.pkcs8ShroudedKeyBag).getBytes()), n.create(n.Class.CONTEXT_SPECIFIC, 0, !0, [i.encryptPrivateKeyInfo(T, r, o)]), c]); var I = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [S]), A = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(i.oids.data).getBytes()), n.create(n.Class.CONTEXT_SPECIFIC, 0, !0, [n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, n.toDer(I).getBytes())])]); f.push(A); } var B, b = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, f); if (o.useMac) { var N = a.md.sha1.create(), R = new a.util.ByteBuffer(a.random.getBytes(o.saltSize)), w = o.count, k = (e = s.generateKey(r, R, 3, w, 20), a.hmac.create()); k.start(N, e), k.update(n.toDer(b).getBytes()); var _ = k.getMac(); B = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(i.oids.sha1).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.NULL, !1, "")]), n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, _.getBytes())]), n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, R.getBytes()), n.create(n.Class.UNIVERSAL, n.Type.INTEGER, !1, n.integerToDer(w).getBytes())]); } return n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.INTEGER, !1, n.integerToDer(3).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(i.oids.data).getBytes()), n.create(n.Class.CONTEXT_SPECIFIC, 0, !0, [n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, n.toDer(b).getBytes())])]), B]); }, s.generateKey = a.pbe.generatePkcs12Key; }, function (e, t, r) { var a = r(0); r(3), r(1); var n = a.asn1, i = e.exports = a.pkcs7asn1 = a.pkcs7asn1 || {}; a.pkcs7 = a.pkcs7 || {}, a.pkcs7.asn1 = i; var s = { name: "ContentInfo", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "ContentInfo.ContentType", tagClass: n.Class.UNIVERSAL, type: n.Type.OID, constructed: !1, capture: "contentType" }, { name: "ContentInfo.content", tagClass: n.Class.CONTEXT_SPECIFIC, type: 0, constructed: !0, optional: !0, captureAsn1: "content" }] }; i.contentInfoValidator = s; var o = { name: "EncryptedContentInfo", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "EncryptedContentInfo.contentType", tagClass: n.Class.UNIVERSAL, type: n.Type.OID, constructed: !1, capture: "contentType" }, { name: "EncryptedContentInfo.contentEncryptionAlgorithm", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "EncryptedContentInfo.contentEncryptionAlgorithm.algorithm", tagClass: n.Class.UNIVERSAL, type: n.Type.OID, constructed: !1, capture: "encAlgorithm" }, { name: "EncryptedContentInfo.contentEncryptionAlgorithm.parameter", tagClass: n.Class.UNIVERSAL, captureAsn1: "encParameter" }] }, { name: "EncryptedContentInfo.encryptedContent", tagClass: n.Class.CONTEXT_SPECIFIC, type: 0, capture: "encryptedContent", captureAsn1: "encryptedContentAsn1" }] }; i.envelopedDataValidator = { name: "EnvelopedData", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "EnvelopedData.Version", tagClass: n.Class.UNIVERSAL, type: n.Type.INTEGER, constructed: !1, capture: "version" }, { name: "EnvelopedData.RecipientInfos", tagClass: n.Class.UNIVERSAL, type: n.Type.SET, constructed: !0, captureAsn1: "recipientInfos" }].concat(o) }, i.encryptedDataValidator = { name: "EncryptedData", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "EncryptedData.Version", tagClass: n.Class.UNIVERSAL, type: n.Type.INTEGER, constructed: !1, capture: "version" }].concat(o) }; var c = { name: "SignerInfo", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "SignerInfo.version", tagClass: n.Class.UNIVERSAL, type: n.Type.INTEGER, constructed: !1 }, { name: "SignerInfo.issuerAndSerialNumber", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "SignerInfo.issuerAndSerialNumber.issuer", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, captureAsn1: "issuer" }, { name: "SignerInfo.issuerAndSerialNumber.serialNumber", tagClass: n.Class.UNIVERSAL, type: n.Type.INTEGER, constructed: !1, capture: "serial" }] }, { name: "SignerInfo.digestAlgorithm", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "SignerInfo.digestAlgorithm.algorithm", tagClass: n.Class.UNIVERSAL, type: n.Type.OID, constructed: !1, capture: "digestAlgorithm" }, { name: "SignerInfo.digestAlgorithm.parameter", tagClass: n.Class.UNIVERSAL, constructed: !1, captureAsn1: "digestParameter", optional: !0 }] }, { name: "SignerInfo.authenticatedAttributes", tagClass: n.Class.CONTEXT_SPECIFIC, type: 0, constructed: !0, optional: !0, capture: "authenticatedAttributes" }, { name: "SignerInfo.digestEncryptionAlgorithm", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, capture: "signatureAlgorithm" }, { name: "SignerInfo.encryptedDigest", tagClass: n.Class.UNIVERSAL, type: n.Type.OCTETSTRING, constructed: !1, capture: "signature" }, { name: "SignerInfo.unauthenticatedAttributes", tagClass: n.Class.CONTEXT_SPECIFIC, type: 1, constructed: !0, optional: !0, capture: "unauthenticatedAttributes" }] }; i.signedDataValidator = { name: "SignedData", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "SignedData.Version", tagClass: n.Class.UNIVERSAL, type: n.Type.INTEGER, constructed: !1, capture: "version" }, { name: "SignedData.DigestAlgorithms", tagClass: n.Class.UNIVERSAL, type: n.Type.SET, constructed: !0, captureAsn1: "digestAlgorithms" }, s, { name: "SignedData.Certificates", tagClass: n.Class.CONTEXT_SPECIFIC, type: 0, optional: !0, captureAsn1: "certificates" }, { name: "SignedData.CertificateRevocationLists", tagClass: n.Class.CONTEXT_SPECIFIC, type: 1, optional: !0, captureAsn1: "crls" }, { name: "SignedData.SignerInfos", tagClass: n.Class.UNIVERSAL, type: n.Type.SET, capture: "signerInfos", optional: !0, value: [c] }] }, i.recipientInfoValidator = { name: "RecipientInfo", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "RecipientInfo.version", tagClass: n.Class.UNIVERSAL, type: n.Type.INTEGER, constructed: !1, capture: "version" }, { name: "RecipientInfo.issuerAndSerial", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "RecipientInfo.issuerAndSerial.issuer", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, captureAsn1: "issuer" }, { name: "RecipientInfo.issuerAndSerial.serialNumber", tagClass: n.Class.UNIVERSAL, type: n.Type.INTEGER, constructed: !1, capture: "serial" }] }, { name: "RecipientInfo.keyEncryptionAlgorithm", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "RecipientInfo.keyEncryptionAlgorithm.algorithm", tagClass: n.Class.UNIVERSAL, type: n.Type.OID, constructed: !1, capture: "encAlgorithm" }, { name: "RecipientInfo.keyEncryptionAlgorithm.parameter", tagClass: n.Class.UNIVERSAL, constructed: !1, captureAsn1: "encParameter", optional: !0 }] }, { name: "RecipientInfo.encryptedKey", tagClass: n.Class.UNIVERSAL, type: n.Type.OCTETSTRING, constructed: !1, capture: "encKey" }] }; }, function (e, t, r) { var a = r(0); r(1), a.mgf = a.mgf || {}, (e.exports = a.mgf.mgf1 = a.mgf1 = a.mgf1 || {}).create = function (e) { return { generate: function (t, r) { for (var n = new a.util.ByteBuffer(), i = Math.ceil(r / e.digestLength), s = 0; s < i; s++) { var o = new a.util.ByteBuffer(); o.putInt32(s), e.start(), e.update(t + o.getBytes()), n.putBuffer(e.digest()); } return n.truncate(n.length() - r), n.getBytes(); } }; }; }, function (e, t, r) { var a = r(0); r(4), r(1); var n = e.exports = a.sha512 = a.sha512 || {}; a.md.sha512 = a.md.algorithms.sha512 = n; var i = a.sha384 = a.sha512.sha384 = a.sha512.sha384 || {}; i.create = function () { return n.create("SHA-384"); }, a.md.sha384 = a.md.algorithms.sha384 = i, a.sha512.sha256 = a.sha512.sha256 || { create: function () { return n.create("SHA-512/256"); } }, a.md["sha512/256"] = a.md.algorithms["sha512/256"] = a.sha512.sha256, a.sha512.sha224 = a.sha512.sha224 || { create: function () { return n.create("SHA-512/224"); } }, a.md["sha512/224"] = a.md.algorithms["sha512/224"] = a.sha512.sha224, n.create = function (e) { if (o || (s = String.fromCharCode(128), s += a.util.fillString(String.fromCharCode(0), 128), c = [[1116352408, 3609767458], [1899447441, 602891725], [3049323471, 3964484399], [3921009573, 2173295548], [961987163, 4081628472], [1508970993, 3053834265], [2453635748, 2937671579], [2870763221, 3664609560], [3624381080, 2734883394], [310598401, 1164996542], [607225278, 1323610764], [1426881987, 3590304994], [1925078388, 4068182383], [2162078206, 991336113], [2614888103, 633803317], [3248222580, 3479774868], [3835390401, 2666613458], [4022224774, 944711139], [264347078, 2341262773], [604807628, 2007800933], [770255983, 1495990901], [1249150122, 1856431235], [1555081692, 3175218132], [1996064986, 2198950837], [2554220882, 3999719339], [2821834349, 766784016], [2952996808, 2566594879], [3210313671, 3203337956], [3336571891, 1034457026], [3584528711, 2466948901], [113926993, 3758326383], [338241895, 168717936], [666307205, 1188179964], [773529912, 1546045734], [1294757372, 1522805485], [1396182291, 2643833823], [1695183700, 2343527390], [1986661051, 1014477480], [2177026350, 1206759142], [2456956037, 344077627], [2730485921, 1290863460], [2820302411, 3158454273], [3259730800, 3505952657], [3345764771, 106217008], [3516065817, 3606008344], [3600352804, 1432725776], [4094571909, 1467031594], [275423344, 851169720], [430227734, 3100823752], [506948616, 1363258195], [659060556, 3750685593], [883997877, 3785050280], [958139571, 3318307427], [1322822218, 3812723403], [1537002063, 2003034995], [1747873779, 3602036899], [1955562222, 1575990012], [2024104815, 1125592928], [2227730452, 2716904306], [2361852424, 442776044], [2428436474, 593698344], [2756734187, 3733110249], [3204031479, 2999351573], [3329325298, 3815920427], [3391569614, 3928383900], [3515267271, 566280711], [3940187606, 3454069534], [4118630271, 4000239992], [116418474, 1914138554], [174292421, 2731055270], [289380356, 3203993006], [460393269, 320620315], [685471733, 587496836], [852142971, 1086792851], [1017036298, 365543100], [1126000580, 2618297676], [1288033470, 3409855158], [1501505948, 4234509866], [1607167915, 987167468], [1816402316, 1246189591]], (u = {})["SHA-512"] = [[1779033703, 4089235720], [3144134277, 2227873595], [1013904242, 4271175723], [2773480762, 1595750129], [1359893119, 2917565137], [2600822924, 725511199], [528734635, 4215389547], [1541459225, 327033209]], u["SHA-384"] = [[3418070365, 3238371032], [1654270250, 914150663], [2438529370, 812702999], [355462360, 4144912697], [1731405415, 4290775857], [2394180231, 1750603025], [3675008525, 1694076839], [1203062813, 3204075428]], u["SHA-512/256"] = [[573645204, 4230739756], [2673172387, 3360449730], [596883563, 1867755857], [2520282905, 1497426621], [2519219938, 2827943907], [3193839141, 1401305490], [721525244, 746961066], [246885852, 2177182882]], u["SHA-512/224"] = [[2352822216, 424955298], [1944164710, 2312950998], [502970286, 855612546], [1738396948, 1479516111], [258812777, 2077511080], [2011393907, 79989058], [1067287976, 1780299464], [286451373, 2446758561]], o = !0), void 0 === e && (e = "SHA-512"), !(e in u)) throw new Error("Invalid SHA-512 algorithm: " + e); for (var t = u[e], r = null, n = a.util.createBuffer(), i = new Array(80), p = 0; p < 80; ++p) i[p] = new Array(2); var f = 64; switch (e) { case "SHA-384": f = 48; break; case "SHA-512/256": f = 32; break; case "SHA-512/224": f = 28; } var h = { algorithm: e.replace("-", "").toLowerCase(), blockLength: 128, digestLength: f, messageLength: 0, fullMessageLength: null, messageLengthSize: 16, start: function () { h.messageLength = 0, h.fullMessageLength = h.messageLength128 = []; for (var e = h.messageLengthSize / 4, i = 0; i < e; ++i) h.fullMessageLength.push(0); n = a.util.createBuffer(), r = new Array(t.length); for (i = 0; i < t.length; ++i) r[i] = t[i].slice(0); return h; } }; return h.start(), h.update = function (e, t) { "utf8" === t && (e = a.util.encodeUtf8(e)); var s = e.length; h.messageLength += s, s = [s / 4294967296 >>> 0, s >>> 0]; for (var o = h.fullMessageLength.length - 1; o >= 0; --o) h.fullMessageLength[o] += s[1], s[1] = s[0] + (h.fullMessageLength[o] / 4294967296 >>> 0), h.fullMessageLength[o] = h.fullMessageLength[o] >>> 0, s[0] = s[1] / 4294967296 >>> 0; return n.putBytes(e), l(r, i, n), (n.read > 2048 || 0 === n.length()) && n.compact(), h; }, h.digest = function () { var t = a.util.createBuffer(); t.putBytes(n.bytes()); var o, c = h.fullMessageLength[h.fullMessageLength.length - 1] + h.messageLengthSize & h.blockLength - 1; t.putBytes(s.substr(0, h.blockLength - c)); for (var u = 8 * h.fullMessageLength[0], p = 0; p < h.fullMessageLength.length - 1; ++p) u += (o = 8 * h.fullMessageLength[p + 1]) / 4294967296 >>> 0, t.putInt32(u >>> 0), u = o >>> 0; t.putInt32(u); var f = new Array(r.length); for (p = 0; p < r.length; ++p) f[p] = r[p].slice(0); l(f, i, t); var d, y = a.util.createBuffer(); d = "SHA-512" === e ? f.length : "SHA-384" === e ? f.length - 2 : f.length - 4; for (p = 0; p < d; ++p) y.putInt32(f[p][0]), p === d - 1 && "SHA-512/224" === e || y.putInt32(f[p][1]); return y; }, h; }; var s = null, o = !1, c = null, u = null; function l(e, t, r) { for (var a, n, i, s, o, u, l, p, f, h, d, y, g, m, v, C, E, S, T, I, A, B, b, N, R, w, k, _, L, U, D, P, V, O = r.length(); O >= 128;) { for (k = 0; k < 16; ++k) t[k][0] = r.getInt32() >>> 0, t[k][1] = r.getInt32() >>> 0; for (; k < 80; ++k) a = (((_ = (U = t[k - 2])[0]) >>> 19 | (L = U[1]) << 13) ^ (L >>> 29 | _ << 3) ^ _ >>> 6) >>> 0, n = ((_ << 13 | L >>> 19) ^ (L << 3 | _ >>> 29) ^ (_ << 26 | L >>> 6)) >>> 0, i = (((_ = (P = t[k - 15])[0]) >>> 1 | (L = P[1]) << 31) ^ (_ >>> 8 | L << 24) ^ _ >>> 7) >>> 0, s = ((_ << 31 | L >>> 1) ^ (_ << 24 | L >>> 8) ^ (_ << 25 | L >>> 7)) >>> 0, D = t[k - 7], V = t[k - 16], L = n + D[1] + s + V[1], t[k][0] = a + D[0] + i + V[0] + (L / 4294967296 >>> 0) >>> 0, t[k][1] = L >>> 0; for (d = e[0][0], y = e[0][1], g = e[1][0], m = e[1][1], v = e[2][0], C = e[2][1], E = e[3][0], S = e[3][1], T = e[4][0], I = e[4][1], A = e[5][0], B = e[5][1], b = e[6][0], N = e[6][1], R = e[7][0], w = e[7][1], k = 0; k < 80; ++k) l = ((T >>> 14 | I << 18) ^ (T >>> 18 | I << 14) ^ (I >>> 9 | T << 23)) >>> 0, p = (b ^ T & (A ^ b)) >>> 0, o = ((d >>> 28 | y << 4) ^ (y >>> 2 | d << 30) ^ (y >>> 7 | d << 25)) >>> 0, u = ((d << 4 | y >>> 28) ^ (y << 30 | d >>> 2) ^ (y << 25 | d >>> 7)) >>> 0, f = (d & g | v & (d ^ g)) >>> 0, h = (y & m | C & (y ^ m)) >>> 0, L = w + (((T << 18 | I >>> 14) ^ (T << 14 | I >>> 18) ^ (I << 23 | T >>> 9)) >>> 0) + ((N ^ I & (B ^ N)) >>> 0) + c[k][1] + t[k][1], a = R + l + p + c[k][0] + t[k][0] + (L / 4294967296 >>> 0) >>> 0, n = L >>> 0, i = o + f + ((L = u + h) / 4294967296 >>> 0) >>> 0, s = L >>> 0, R = b, w = N, b = A, N = B, A = T, B = I, T = E + a + ((L = S + n) / 4294967296 >>> 0) >>> 0, I = L >>> 0, E = v, S = C, v = g, C = m, g = d, m = y, d = a + i + ((L = n + s) / 4294967296 >>> 0) >>> 0, y = L >>> 0; L = e[0][1] + y, e[0][0] = e[0][0] + d + (L / 4294967296 >>> 0) >>> 0, e[0][1] = L >>> 0, L = e[1][1] + m, e[1][0] = e[1][0] + g + (L / 4294967296 >>> 0) >>> 0, e[1][1] = L >>> 0, L = e[2][1] + C, e[2][0] = e[2][0] + v + (L / 4294967296 >>> 0) >>> 0, e[2][1] = L >>> 0, L = e[3][1] + S, e[3][0] = e[3][0] + E + (L / 4294967296 >>> 0) >>> 0, e[3][1] = L >>> 0, L = e[4][1] + I, e[4][0] = e[4][0] + T + (L / 4294967296 >>> 0) >>> 0, e[4][1] = L >>> 0, L = e[5][1] + B, e[5][0] = e[5][0] + A + (L / 4294967296 >>> 0) >>> 0, e[5][1] = L >>> 0, L = e[6][1] + N, e[6][0] = e[6][0] + b + (L / 4294967296 >>> 0) >>> 0, e[6][1] = L >>> 0, L = e[7][1] + w, e[7][0] = e[7][0] + R + (L / 4294967296 >>> 0) >>> 0, e[7][1] = L >>> 0, O -= 128; } } }, function (e, t, r) { e.exports = r(33); }, function (e, t, r) { e.exports = r(0), r(5), r(36), r(3), r(13), r(10), r(38), r(8), r(40), r(41), r(42), r(30), r(15), r(7), r(26), r(28), r(43), r(21), r(27), r(24), r(18), r(2), r(25), r(44), r(20), r(1); }, function (e, t) { var r; r = function () { return this; }(); try { r = r || new Function("return this")(); } catch (e) { "object" == typeof window && (r = window); } e.exports = r; }, function (e, t) { var r = {}; e.exports = r; var a = {}; r.encode = function (e, t, r) { if ("string" != typeof t) throw new TypeError('"alphabet" must be a string.'); if (void 0 !== r && "number" != typeof r) throw new TypeError('"maxline" must be a number.'); var a = ""; if (e instanceof Uint8Array) { var n = 0, i = t.length, s = t.charAt(0), o = [0]; for (n = 0; n < e.length; ++n) { for (var c = 0, u = e[n]; c < o.length; ++c) u += o[c] << 8, o[c] = u % i, u = u / i | 0; for (; u > 0;) o.push(u % i), u = u / i | 0; } for (n = 0; 0 === e[n] && n < e.length - 1; ++n) a += s; for (n = o.length - 1; n >= 0; --n) a += t[o[n]]; } else a = function (e, t) { var r = 0, a = t.length, n = t.charAt(0), i = [0]; for (r = 0; r < e.length(); ++r) { for (var s = 0, o = e.at(r); s < i.length; ++s) o += i[s] << 8, i[s] = o % a, o = o / a | 0; for (; o > 0;) i.push(o % a), o = o / a | 0; } var c = ""; for (r = 0; 0 === e.at(r) && r < e.length() - 1; ++r) c += n; for (r = i.length - 1; r >= 0; --r) c += t[i[r]]; return c; }(e, t); if (r) { var l = new RegExp(".{1," + r + "}", "g"); a = a.match(l).join("\r\n"); } return a; }, r.decode = function (e, t) { if ("string" != typeof e) throw new TypeError('"input" must be a string.'); if ("string" != typeof t) throw new TypeError('"alphabet" must be a string.'); var r = a[t]; if (!r) { r = a[t] = []; for (var n = 0; n < t.length; ++n) r[t.charCodeAt(n)] = n; } e = e.replace(/\s/g, ""); var i = t.length, s = t.charAt(0), o = [0]; for (n = 0; n < e.length; n++) { var c = r[e.charCodeAt(n)]; if (void 0 === c) return; for (var u = 0, l = c; u < o.length; ++u) l += o[u] * i, o[u] = 255 & l, l >>= 8; for (; l > 0;) o.push(255 & l), l >>= 8; } for (var p = 0; e[p] === s && p < e.length - 1; ++p) o.push(0); return "undefined" != typeof Buffer ? Buffer.from(o.reverse()) : new Uint8Array(o.reverse()); }; }, function (e, t, r) { var a = r(0); r(5), r(20); var n = e.exports = a.tls; function i(e, t, r) { var i = t.entity === a.tls.ConnectionEnd.client; e.read.cipherState = { init: !1, cipher: a.cipher.createDecipher("AES-CBC", i ? r.keys.server_write_key : r.keys.client_write_key), iv: i ? r.keys.server_write_IV : r.keys.client_write_IV }, e.write.cipherState = { init: !1, cipher: a.cipher.createCipher("AES-CBC", i ? r.keys.client_write_key : r.keys.server_write_key), iv: i ? r.keys.client_write_IV : r.keys.server_write_IV }, e.read.cipherFunction = u, e.write.cipherFunction = s, e.read.macLength = e.write.macLength = r.mac_length, e.read.macFunction = e.write.macFunction = n.hmac_sha1; } function s(e, t) { var r, i = !1, s = t.macFunction(t.macKey, t.sequenceNumber, e); e.fragment.putBytes(s), t.updateSequenceNumber(), r = e.version.minor === n.Versions.TLS_1_0.minor ? t.cipherState.init ? null : t.cipherState.iv : a.random.getBytesSync(16), t.cipherState.init = !0; var c = t.cipherState.cipher; return c.start({ iv: r }), e.version.minor >= n.Versions.TLS_1_1.minor && c.output.putBytes(r), c.update(e.fragment), c.finish(o) && (e.fragment = c.output, e.length = e.fragment.length(), i = !0), i; } function o(e, t, r) { if (!r) { var a = e - t.length() % e; t.fillWithByte(a - 1, a); } return !0; } function c(e, t, r) { var a = !0; if (r) { for (var n = t.length(), i = t.last(), s = n - 1 - i; s < n - 1; ++s) a = a && t.at(s) == i; a && t.truncate(i + 1); } return a; } function u(e, t) { var r, i = !1; r = e.version.minor === n.Versions.TLS_1_0.minor ? t.cipherState.init ? null : t.cipherState.iv : e.fragment.getBytes(16), t.cipherState.init = !0; var s = t.cipherState.cipher; s.start({ iv: r }), s.update(e.fragment), i = s.finish(c); var o = t.macLength, u = a.random.getBytesSync(o), l = s.output.length(); l >= o ? (e.fragment = s.output.getBytes(l - o), u = s.output.getBytes(o)) : e.fragment = s.output.getBytes(), e.fragment = a.util.createBuffer(e.fragment), e.length = e.fragment.length(); var p = t.macFunction(t.macKey, t.sequenceNumber, e); return t.updateSequenceNumber(), i = function (e, t, r) { var n = a.hmac.create(); return n.start("SHA1", e), n.update(t), t = n.digest().getBytes(), n.start(null, null), n.update(r), r = n.digest().getBytes(), t === r; }(t.macKey, u, p) && i; } n.CipherSuites.TLS_RSA_WITH_AES_128_CBC_SHA = { id: [0, 47], name: "TLS_RSA_WITH_AES_128_CBC_SHA", initSecurityParameters: function (e) { e.bulk_cipher_algorithm = n.BulkCipherAlgorithm.aes, e.cipher_type = n.CipherType.block, e.enc_key_length = 16, e.block_length = 16, e.fixed_iv_length = 16, e.record_iv_length = 16, e.mac_algorithm = n.MACAlgorithm.hmac_sha1, e.mac_length = 20, e.mac_key_length = 20; }, initConnectionState: i }, n.CipherSuites.TLS_RSA_WITH_AES_256_CBC_SHA = { id: [0, 53], name: "TLS_RSA_WITH_AES_256_CBC_SHA", initSecurityParameters: function (e) { e.bulk_cipher_algorithm = n.BulkCipherAlgorithm.aes, e.cipher_type = n.CipherType.block, e.enc_key_length = 32, e.block_length = 16, e.fixed_iv_length = 16, e.record_iv_length = 16, e.mac_algorithm = n.MACAlgorithm.hmac_sha1, e.mac_length = 20, e.mac_key_length = 20; }, initConnectionState: i }; }, function (e, t, r) { var a = r(0); r(30), e.exports = a.mgf = a.mgf || {}, a.mgf.mgf1 = a.mgf1; }, function (e, t, r) { var a = r(0); r(12), r(2), r(31), r(1); var n = r(39), i = n.publicKeyValidator, s = n.privateKeyValidator; if (void 0 === o) var o = a.jsbn.BigInteger; var c = a.util.ByteBuffer, u = "undefined" == typeof Buffer ? Uint8Array : Buffer; a.pki = a.pki || {}, e.exports = a.pki.ed25519 = a.ed25519 = a.ed25519 || {}; var l = a.ed25519; function p(e) { var t = e.message; if (t instanceof Uint8Array || t instanceof u) return t; var r = e.encoding; if (void 0 === t) { if (!e.md) throw new TypeError('"options.message" or "options.md" not specified.'); t = e.md.digest().getBytes(), r = "binary"; } if ("string" == typeof t && !r) throw new TypeError('"options.encoding" must be "binary" or "utf8".'); if ("string" == typeof t) { if ("undefined" != typeof Buffer) return Buffer.from(t, r); t = new c(t, r); } else if (!(t instanceof c)) throw new TypeError('"options.message" must be a node.js Buffer, a Uint8Array, a forge ByteBuffer, or a string with "options.encoding" specifying its encoding.'); for (var a = new u(t.length()), n = 0; n < a.length; ++n) a[n] = t.at(n); return a; } l.constants = {}, l.constants.PUBLIC_KEY_BYTE_LENGTH = 32, l.constants.PRIVATE_KEY_BYTE_LENGTH = 64, l.constants.SEED_BYTE_LENGTH = 32, l.constants.SIGN_BYTE_LENGTH = 64, l.constants.HASH_BYTE_LENGTH = 64, l.generateKeyPair = function (e) { var t = (e = e || {}).seed; if (void 0 === t) t = a.random.getBytesSync(l.constants.SEED_BYTE_LENGTH);else if ("string" == typeof t) { if (t.length !== l.constants.SEED_BYTE_LENGTH) throw new TypeError('"seed" must be ' + l.constants.SEED_BYTE_LENGTH + " bytes in length."); } else if (!(t instanceof Uint8Array)) throw new TypeError('"seed" must be a node.js Buffer, Uint8Array, or a binary string.'); t = p({ message: t, encoding: "binary" }); for (var r = new u(l.constants.PUBLIC_KEY_BYTE_LENGTH), n = new u(l.constants.PRIVATE_KEY_BYTE_LENGTH), i = 0; i < 32; ++i) n[i] = t[i]; return function (e, t) { var r, a = [P(), P(), P(), P()], n = E(t, 32); for (n[0] &= 248, n[31] &= 127, n[31] |= 64, _(a, n), B(e, a), r = 0; r < 32; ++r) t[r + 32] = e[r]; }(r, n), { publicKey: r, privateKey: n }; }, l.privateKeyFromAsn1 = function (e) { var t = {}, r = []; if (!a.asn1.validate(e, s, t, r)) { var n = new Error("Invalid Key."); throw n.errors = r, n; } var i = a.asn1.derToOid(t.privateKeyOid), o = a.oids.EdDSA25519; if (i !== o) throw new Error('Invalid OID "' + i + '"; OID must be "' + o + '".'); var c = t.privateKey; return { privateKeyBytes: p({ message: a.asn1.fromDer(c).value, encoding: "binary" }) }; }, l.publicKeyFromAsn1 = function (e) { var t = {}, r = []; if (!a.asn1.validate(e, i, t, r)) { var n = new Error("Invalid Key."); throw n.errors = r, n; } var s = a.asn1.derToOid(t.publicKeyOid), o = a.oids.EdDSA25519; if (s !== o) throw new Error('Invalid OID "' + s + '"; OID must be "' + o + '".'); var c = t.ed25519PublicKey; if (c.length !== l.constants.PUBLIC_KEY_BYTE_LENGTH) throw new Error("Key length is invalid."); return p({ message: c, encoding: "binary" }); }, l.publicKeyFromPrivateKey = function (e) { var t = p({ message: (e = e || {}).privateKey, encoding: "binary" }); if (t.length !== l.constants.PRIVATE_KEY_BYTE_LENGTH) throw new TypeError('"options.privateKey" must have a byte length of ' + l.constants.PRIVATE_KEY_BYTE_LENGTH); for (var r = new u(l.constants.PUBLIC_KEY_BYTE_LENGTH), a = 0; a < r.length; ++a) r[a] = t[32 + a]; return r; }, l.sign = function (e) { var t = p(e = e || {}), r = p({ message: e.privateKey, encoding: "binary" }); if (r.length === l.constants.SEED_BYTE_LENGTH) r = l.generateKeyPair({ seed: r }).privateKey;else if (r.length !== l.constants.PRIVATE_KEY_BYTE_LENGTH) throw new TypeError('"options.privateKey" must have a byte length of ' + l.constants.SEED_BYTE_LENGTH + " or " + l.constants.PRIVATE_KEY_BYTE_LENGTH); var a = new u(l.constants.SIGN_BYTE_LENGTH + t.length); !function (e, t, r, a) { var n, i, s = new Float64Array(64), o = [P(), P(), P(), P()], c = E(a, 32); c[0] &= 248, c[31] &= 127, c[31] |= 64; var u = r + 64; for (n = 0; n < r; ++n) e[64 + n] = t[n]; for (n = 0; n < 32; ++n) e[32 + n] = c[32 + n]; var l = E(e.subarray(32), r + 32); for (T(l), _(o, l), B(e, o), n = 32; n < 64; ++n) e[n] = a[n]; var p = E(e, r + 64); for (T(p), n = 32; n < 64; ++n) s[n] = 0; for (n = 0; n < 32; ++n) s[n] = l[n]; for (n = 0; n < 32; ++n) for (i = 0; i < 32; i++) s[n + i] += p[n] * c[i]; S(e.subarray(32), s); }(a, t, t.length, r); for (var n = new u(l.constants.SIGN_BYTE_LENGTH), i = 0; i < n.length; ++i) n[i] = a[i]; return n; }, l.verify = function (e) { var t = p(e = e || {}); if (void 0 === e.signature) throw new TypeError('"options.signature" must be a node.js Buffer, a Uint8Array, a forge ByteBuffer, or a binary string.'); var r = p({ message: e.signature, encoding: "binary" }); if (r.length !== l.constants.SIGN_BYTE_LENGTH) throw new TypeError('"options.signature" must have a byte length of ' + l.constants.SIGN_BYTE_LENGTH); var a = p({ message: e.publicKey, encoding: "binary" }); if (a.length !== l.constants.PUBLIC_KEY_BYTE_LENGTH) throw new TypeError('"options.publicKey" must have a byte length of ' + l.constants.PUBLIC_KEY_BYTE_LENGTH); var n, i = new u(l.constants.SIGN_BYTE_LENGTH + t.length), s = new u(l.constants.SIGN_BYTE_LENGTH + t.length); for (n = 0; n < l.constants.SIGN_BYTE_LENGTH; ++n) i[n] = r[n]; for (n = 0; n < t.length; ++n) i[n + l.constants.SIGN_BYTE_LENGTH] = t[n]; return function (e, t, r, a) { var n, i = new u(32), s = [P(), P(), P(), P()], o = [P(), P(), P(), P()]; if (-1, r < 64) return -1; if (function (e, t) { var r = P(), a = P(), n = P(), i = P(), s = P(), o = P(), c = P(); L(e[2], h), function (e, t) { var r; for (r = 0; r < 16; ++r) e[r] = t[2 * r] + (t[2 * r + 1] << 8); e[15] &= 32767; }(e[1], t), K(n, e[1]), x(i, n, d), O(n, n, e[2]), V(i, e[2], i), K(s, i), K(o, s), x(c, o, s), x(r, c, n), x(r, r, i), function (e, t) { var r, a = P(); for (r = 0; r < 16; ++r) a[r] = t[r]; for (r = 250; r >= 0; --r) K(a, a), 1 !== r && x(a, a, t); for (r = 0; r < 16; ++r) e[r] = a[r]; }(r, r), x(r, r, n), x(r, r, i), x(r, r, i), x(e[0], r, i), K(a, e[0]), x(a, a, i), N(a, n) && x(e[0], e[0], C); if (K(a, e[0]), x(a, a, i), N(a, n)) return -1; w(e[0]) === t[31] >> 7 && O(e[0], f, e[0]); return x(e[3], e[0], e[1]), 0; }(o, a)) return -1; for (n = 0; n < r; ++n) e[n] = t[n]; for (n = 0; n < 32; ++n) e[n + 32] = a[n]; var c = E(e, r); if (T(c), k(s, o, c), _(o, t.subarray(32)), I(s, o), B(i, s), r -= 64, R(t, 0, i, 0)) { for (n = 0; n < r; ++n) e[n] = 0; return -1; } for (n = 0; n < r; ++n) e[n] = t[n + 64]; return r; }(s, i, i.length, a) >= 0; }; var f = P(), h = P([1]), d = P([30883, 4953, 19914, 30187, 55467, 16705, 2637, 112, 59544, 30585, 16505, 36039, 65139, 11119, 27886, 20995]), y = P([61785, 9906, 39828, 60374, 45398, 33411, 5274, 224, 53552, 61171, 33010, 6542, 64743, 22239, 55772, 9222]), g = P([54554, 36645, 11616, 51542, 42930, 38181, 51040, 26924, 56412, 64982, 57905, 49316, 21502, 52590, 14035, 8553]), m = P([26200, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214]), v = new Float64Array([237, 211, 245, 92, 26, 99, 18, 88, 214, 156, 247, 162, 222, 249, 222, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16]), C = P([41136, 18958, 6951, 50414, 58488, 44335, 6150, 12099, 55207, 15867, 153, 11085, 57099, 20417, 9344, 11139]); function E(e, t) { var r = a.md.sha512.create(), n = new c(e); r.update(n.getBytes(t), "binary"); var i = r.digest().getBytes(); if ("undefined" != typeof Buffer) return Buffer.from(i, "binary"); for (var s = new u(l.constants.HASH_BYTE_LENGTH), o = 0; o < 64; ++o) s[o] = i.charCodeAt(o); return s; } function S(e, t) { var r, a, n, i; for (a = 63; a >= 32; --a) { for (r = 0, n = a - 32, i = a - 12; n < i; ++n) t[n] += r - 16 * t[a] * v[n - (a - 32)], r = t[n] + 128 >> 8, t[n] -= 256 * r; t[n] += r, t[a] = 0; } for (r = 0, n = 0; n < 32; ++n) t[n] += r - (t[31] >> 4) * v[n], r = t[n] >> 8, t[n] &= 255; for (n = 0; n < 32; ++n) t[n] -= r * v[n]; for (a = 0; a < 32; ++a) t[a + 1] += t[a] >> 8, e[a] = 255 & t[a]; } function T(e) { for (var t = new Float64Array(64), r = 0; r < 64; ++r) t[r] = e[r], e[r] = 0; S(e, t); } function I(e, t) { var r = P(), a = P(), n = P(), i = P(), s = P(), o = P(), c = P(), u = P(), l = P(); O(r, e[1], e[0]), O(l, t[1], t[0]), x(r, r, l), V(a, e[0], e[1]), V(l, t[0], t[1]), x(a, a, l), x(n, e[3], t[3]), x(n, n, y), x(i, e[2], t[2]), V(i, i, i), O(s, a, r), O(o, i, n), V(c, i, n), V(u, a, r), x(e[0], s, o), x(e[1], u, c), x(e[2], c, o), x(e[3], s, u); } function A(e, t, r) { for (var a = 0; a < 4; ++a) D(e[a], t[a], r); } function B(e, t) { var r = P(), a = P(), n = P(); !function (e, t) { var r, a = P(); for (r = 0; r < 16; ++r) a[r] = t[r]; for (r = 253; r >= 0; --r) K(a, a), 2 !== r && 4 !== r && x(a, a, t); for (r = 0; r < 16; ++r) e[r] = a[r]; }(n, t[2]), x(r, t[0], n), x(a, t[1], n), b(e, a), e[31] ^= w(r) << 7; } function b(e, t) { var r, a, n, i = P(), s = P(); for (r = 0; r < 16; ++r) s[r] = t[r]; for (U(s), U(s), U(s), a = 0; a < 2; ++a) { for (i[0] = s[0] - 65517, r = 1; r < 15; ++r) i[r] = s[r] - 65535 - (i[r - 1] >> 16 & 1), i[r - 1] &= 65535; i[15] = s[15] - 32767 - (i[14] >> 16 & 1), n = i[15] >> 16 & 1, i[14] &= 65535, D(s, i, 1 - n); } for (r = 0; r < 16; r++) e[2 * r] = 255 & s[r], e[2 * r + 1] = s[r] >> 8; } function N(e, t) { var r = new u(32), a = new u(32); return b(r, e), b(a, t), R(r, 0, a, 0); } function R(e, t, r, a) { return function (e, t, r, a, n) { var i, s = 0; for (i = 0; i < n; ++i) s |= e[t + i] ^ r[a + i]; return (1 & s - 1 >>> 8) - 1; }(e, t, r, a, 32); } function w(e) { var t = new u(32); return b(t, e), 1 & t[0]; } function k(e, t, r) { var a, n; for (L(e[0], f), L(e[1], h), L(e[2], h), L(e[3], f), n = 255; n >= 0; --n) A(e, t, a = r[n / 8 | 0] >> (7 & n) & 1), I(t, e), I(e, e), A(e, t, a); } function _(e, t) { var r = [P(), P(), P(), P()]; L(r[0], g), L(r[1], m), L(r[2], h), x(r[3], g, m), k(e, r, t); } function L(e, t) { var r; for (r = 0; r < 16; r++) e[r] = 0 | t[r]; } function U(e) { var t, r, a = 1; for (t = 0; t < 16; ++t) r = e[t] + a + 65535, a = Math.floor(r / 65536), e[t] = r - 65536 * a; e[0] += a - 1 + 37 * (a - 1); } function D(e, t, r) { for (var a, n = ~(r - 1), i = 0; i < 16; ++i) a = n & (e[i] ^ t[i]), e[i] ^= a, t[i] ^= a; } function P(e) { var t, r = new Float64Array(16); if (e) for (t = 0; t < e.length; ++t) r[t] = e[t]; return r; } function V(e, t, r) { for (var a = 0; a < 16; ++a) e[a] = t[a] + r[a]; } function O(e, t, r) { for (var a = 0; a < 16; ++a) e[a] = t[a] - r[a]; } function K(e, t) { x(e, t, t); } function x(e, t, r) { var a, n, i = 0, s = 0, o = 0, c = 0, u = 0, l = 0, p = 0, f = 0, h = 0, d = 0, y = 0, g = 0, m = 0, v = 0, C = 0, E = 0, S = 0, T = 0, I = 0, A = 0, B = 0, b = 0, N = 0, R = 0, w = 0, k = 0, _ = 0, L = 0, U = 0, D = 0, P = 0, V = r[0], O = r[1], K = r[2], x = r[3], M = r[4], F = r[5], j = r[6], G = r[7], H = r[8], q = r[9], Q = r[10], z = r[11], Y = r[12], W = r[13], X = r[14], Z = r[15]; i += (a = t[0]) * V, s += a * O, o += a * K, c += a * x, u += a * M, l += a * F, p += a * j, f += a * G, h += a * H, d += a * q, y += a * Q, g += a * z, m += a * Y, v += a * W, C += a * X, E += a * Z, s += (a = t[1]) * V, o += a * O, c += a * K, u += a * x, l += a * M, p += a * F, f += a * j, h += a * G, d += a * H, y += a * q, g += a * Q, m += a * z, v += a * Y, C += a * W, E += a * X, S += a * Z, o += (a = t[2]) * V, c += a * O, u += a * K, l += a * x, p += a * M, f += a * F, h += a * j, d += a * G, y += a * H, g += a * q, m += a * Q, v += a * z, C += a * Y, E += a * W, S += a * X, T += a * Z, c += (a = t[3]) * V, u += a * O, l += a * K, p += a * x, f += a * M, h += a * F, d += a * j, y += a * G, g += a * H, m += a * q, v += a * Q, C += a * z, E += a * Y, S += a * W, T += a * X, I += a * Z, u += (a = t[4]) * V, l += a * O, p += a * K, f += a * x, h += a * M, d += a * F, y += a * j, g += a * G, m += a * H, v += a * q, C += a * Q, E += a * z, S += a * Y, T += a * W, I += a * X, A += a * Z, l += (a = t[5]) * V, p += a * O, f += a * K, h += a * x, d += a * M, y += a * F, g += a * j, m += a * G, v += a * H, C += a * q, E += a * Q, S += a * z, T += a * Y, I += a * W, A += a * X, B += a * Z, p += (a = t[6]) * V, f += a * O, h += a * K, d += a * x, y += a * M, g += a * F, m += a * j, v += a * G, C += a * H, E += a * q, S += a * Q, T += a * z, I += a * Y, A += a * W, B += a * X, b += a * Z, f += (a = t[7]) * V, h += a * O, d += a * K, y += a * x, g += a * M, m += a * F, v += a * j, C += a * G, E += a * H, S += a * q, T += a * Q, I += a * z, A += a * Y, B += a * W, b += a * X, N += a * Z, h += (a = t[8]) * V, d += a * O, y += a * K, g += a * x, m += a * M, v += a * F, C += a * j, E += a * G, S += a * H, T += a * q, I += a * Q, A += a * z, B += a * Y, b += a * W, N += a * X, R += a * Z, d += (a = t[9]) * V, y += a * O, g += a * K, m += a * x, v += a * M, C += a * F, E += a * j, S += a * G, T += a * H, I += a * q, A += a * Q, B += a * z, b += a * Y, N += a * W, R += a * X, w += a * Z, y += (a = t[10]) * V, g += a * O, m += a * K, v += a * x, C += a * M, E += a * F, S += a * j, T += a * G, I += a * H, A += a * q, B += a * Q, b += a * z, N += a * Y, R += a * W, w += a * X, k += a * Z, g += (a = t[11]) * V, m += a * O, v += a * K, C += a * x, E += a * M, S += a * F, T += a * j, I += a * G, A += a * H, B += a * q, b += a * Q, N += a * z, R += a * Y, w += a * W, k += a * X, _ += a * Z, m += (a = t[12]) * V, v += a * O, C += a * K, E += a * x, S += a * M, T += a * F, I += a * j, A += a * G, B += a * H, b += a * q, N += a * Q, R += a * z, w += a * Y, k += a * W, _ += a * X, L += a * Z, v += (a = t[13]) * V, C += a * O, E += a * K, S += a * x, T += a * M, I += a * F, A += a * j, B += a * G, b += a * H, N += a * q, R += a * Q, w += a * z, k += a * Y, _ += a * W, L += a * X, U += a * Z, C += (a = t[14]) * V, E += a * O, S += a * K, T += a * x, I += a * M, A += a * F, B += a * j, b += a * G, N += a * H, R += a * q, w += a * Q, k += a * z, _ += a * Y, L += a * W, U += a * X, D += a * Z, E += (a = t[15]) * V, s += 38 * (T += a * K), o += 38 * (I += a * x), c += 38 * (A += a * M), u += 38 * (B += a * F), l += 38 * (b += a * j), p += 38 * (N += a * G), f += 38 * (R += a * H), h += 38 * (w += a * q), d += 38 * (k += a * Q), y += 38 * (_ += a * z), g += 38 * (L += a * Y), m += 38 * (U += a * W), v += 38 * (D += a * X), C += 38 * (P += a * Z), i = (a = (i += 38 * (S += a * O)) + (n = 1) + 65535) - 65536 * (n = Math.floor(a / 65536)), s = (a = s + n + 65535) - 65536 * (n = Math.floor(a / 65536)), o = (a = o + n + 65535) - 65536 * (n = Math.floor(a / 65536)), c = (a = c + n + 65535) - 65536 * (n = Math.floor(a / 65536)), u = (a = u + n + 65535) - 65536 * (n = Math.floor(a / 65536)), l = (a = l + n + 65535) - 65536 * (n = Math.floor(a / 65536)), p = (a = p + n + 65535) - 65536 * (n = Math.floor(a / 65536)), f = (a = f + n + 65535) - 65536 * (n = Math.floor(a / 65536)), h = (a = h + n + 65535) - 65536 * (n = Math.floor(a / 65536)), d = (a = d + n + 65535) - 65536 * (n = Math.floor(a / 65536)), y = (a = y + n + 65535) - 65536 * (n = Math.floor(a / 65536)), g = (a = g + n + 65535) - 65536 * (n = Math.floor(a / 65536)), m = (a = m + n + 65535) - 65536 * (n = Math.floor(a / 65536)), v = (a = v + n + 65535) - 65536 * (n = Math.floor(a / 65536)), C = (a = C + n + 65535) - 65536 * (n = Math.floor(a / 65536)), E = (a = E + n + 65535) - 65536 * (n = Math.floor(a / 65536)), i = (a = (i += n - 1 + 37 * (n - 1)) + (n = 1) + 65535) - 65536 * (n = Math.floor(a / 65536)), s = (a = s + n + 65535) - 65536 * (n = Math.floor(a / 65536)), o = (a = o + n + 65535) - 65536 * (n = Math.floor(a / 65536)), c = (a = c + n + 65535) - 65536 * (n = Math.floor(a / 65536)), u = (a = u + n + 65535) - 65536 * (n = Math.floor(a / 65536)), l = (a = l + n + 65535) - 65536 * (n = Math.floor(a / 65536)), p = (a = p + n + 65535) - 65536 * (n = Math.floor(a / 65536)), f = (a = f + n + 65535) - 65536 * (n = Math.floor(a / 65536)), h = (a = h + n + 65535) - 65536 * (n = Math.floor(a / 65536)), d = (a = d + n + 65535) - 65536 * (n = Math.floor(a / 65536)), y = (a = y + n + 65535) - 65536 * (n = Math.floor(a / 65536)), g = (a = g + n + 65535) - 65536 * (n = Math.floor(a / 65536)), m = (a = m + n + 65535) - 65536 * (n = Math.floor(a / 65536)), v = (a = v + n + 65535) - 65536 * (n = Math.floor(a / 65536)), C = (a = C + n + 65535) - 65536 * (n = Math.floor(a / 65536)), E = (a = E + n + 65535) - 65536 * (n = Math.floor(a / 65536)), i += n - 1 + 37 * (n - 1), e[0] = i, e[1] = s, e[2] = o, e[3] = c, e[4] = u, e[5] = l, e[6] = p, e[7] = f, e[8] = h, e[9] = d, e[10] = y, e[11] = g, e[12] = m, e[13] = v, e[14] = C, e[15] = E; } }, function (e, t, r) { var a = r(0); r(3); var n = a.asn1; t.privateKeyValidator = { name: "PrivateKeyInfo", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "PrivateKeyInfo.version", tagClass: n.Class.UNIVERSAL, type: n.Type.INTEGER, constructed: !1, capture: "privateKeyVersion" }, { name: "PrivateKeyInfo.privateKeyAlgorithm", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "AlgorithmIdentifier.algorithm", tagClass: n.Class.UNIVERSAL, type: n.Type.OID, constructed: !1, capture: "privateKeyOid" }] }, { name: "PrivateKeyInfo", tagClass: n.Class.UNIVERSAL, type: n.Type.OCTETSTRING, constructed: !1, capture: "privateKey" }] }, t.publicKeyValidator = { name: "SubjectPublicKeyInfo", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, captureAsn1: "subjectPublicKeyInfo", value: [{ name: "SubjectPublicKeyInfo.AlgorithmIdentifier", tagClass: n.Class.UNIVERSAL, type: n.Type.SEQUENCE, constructed: !0, value: [{ name: "AlgorithmIdentifier.algorithm", tagClass: n.Class.UNIVERSAL, type: n.Type.OID, constructed: !1, capture: "publicKeyOid" }] }, { tagClass: n.Class.UNIVERSAL, type: n.Type.BITSTRING, constructed: !1, composed: !0, captureBitStringValue: "ed25519PublicKey" }] }; }, function (e, t, r) { var a = r(0); r(1), r(2), r(12), e.exports = a.kem = a.kem || {}; var n = a.jsbn.BigInteger; function i(e, t, r, n) { e.generate = function (e, i) { for (var s = new a.util.ByteBuffer(), o = Math.ceil(i / n) + r, c = new a.util.ByteBuffer(), u = r; u < o; ++u) { c.putInt32(u), t.start(), t.update(e + c.getBytes()); var l = t.digest(); s.putBytes(l.getBytes(n)); } return s.truncate(s.length() - i), s.getBytes(); }; } a.kem.rsa = {}, a.kem.rsa.create = function (e, t) { var r = (t = t || {}).prng || a.random, i = { encrypt: function (t, i) { var s, o = Math.ceil(t.n.bitLength() / 8); do { s = new n(a.util.bytesToHex(r.getBytesSync(o)), 16).mod(t.n); } while (s.compareTo(n.ONE) <= 0); var c = o - (s = a.util.hexToBytes(s.toString(16))).length; return c > 0 && (s = a.util.fillString(String.fromCharCode(0), c) + s), { encapsulation: t.encrypt(s, "NONE"), key: e.generate(s, i) }; }, decrypt: function (t, r, a) { var n = t.decrypt(r, "NONE"); return e.generate(n, a); } }; return i; }, a.kem.kdf1 = function (e, t) { i(this, e, 0, t || e.digestLength); }, a.kem.kdf2 = function (e, t) { i(this, e, 1, t || e.digestLength); }; }, function (e, t, r) { var a = r(0); r(1), e.exports = a.log = a.log || {}, a.log.levels = ["none", "error", "warning", "info", "debug", "verbose", "max"]; var n, i = {}, s = [], o = null; a.log.LEVEL_LOCKED = 2, a.log.NO_LEVEL_CHECK = 4, a.log.INTERPOLATE = 8; for (var c = 0; c < a.log.levels.length; ++c) { var u = a.log.levels[c]; i[u] = { index: c, name: u.toUpperCase() }; } a.log.logMessage = function (e) { for (var t = i[e.level].index, r = 0; r < s.length; ++r) { var n = s[r]; if (n.flags & a.log.NO_LEVEL_CHECK) n.f(e);else t <= i[n.level].index && n.f(n, e); } }, a.log.prepareStandard = function (e) { "standard" in e || (e.standard = i[e.level].name + " [" + e.category + "] " + e.message); }, a.log.prepareFull = function (e) { if (!("full" in e)) { var t = [e.message]; t = t.concat([] || 0), e.full = a.util.format.apply(this, t); } }, a.log.prepareStandardFull = function (e) { "standardFull" in e || (a.log.prepareStandard(e), e.standardFull = e.standard); }; var l = ["error", "warning", "info", "debug", "verbose"]; for (c = 0; c < l.length; ++c) !function (e) { a.log[e] = function (t, r) { var n = Array.prototype.slice.call(arguments).slice(2), i = { timestamp: new Date(), level: e, category: t, message: r, arguments: n }; a.log.logMessage(i); }; }(l[c]); if (a.log.makeLogger = function (e) { var t = { flags: 0, f: e }; return a.log.setLevel(t, "none"), t; }, a.log.setLevel = function (e, t) { var r = !1; if (e && !(e.flags & a.log.LEVEL_LOCKED)) for (var n = 0; n < a.log.levels.length; ++n) { if (t == a.log.levels[n]) { e.level = t, r = !0; break; } } return r; }, a.log.lock = function (e, t) { void 0 === t || t ? e.flags |= a.log.LEVEL_LOCKED : e.flags &= ~a.log.LEVEL_LOCKED; }, a.log.addLogger = function (e) { s.push(e); }, "undefined" != typeof console && "log" in console) { var p; if (console.error && console.warn && console.info && console.debug) { var f = { error: console.error, warning: console.warn, info: console.info, debug: console.debug, verbose: console.debug }, h = function (e, t) { a.log.prepareStandard(t); var r = f[t.level], n = [t.standard]; n = n.concat(t.arguments.slice()), r.apply(console, n); }; p = a.log.makeLogger(h); } else { h = function (e, t) { a.log.prepareStandardFull(t), console.log(t.standardFull); }; p = a.log.makeLogger(h); } a.log.setLevel(p, "debug"), a.log.addLogger(p), o = p; } else console = { log: function () {} }; null !== o && ((n = "undefined" != typeof window && window.location ? new URL(window.location.href).searchParams : new URLSearchParams()).has("console.level") && a.log.setLevel(o, n.get("console.level").slice(-1)[0]), n.has("console.lock") && "true" == n.get("console.lock").slice(-1)[0] && a.log.lock(o)); a.log.consoleLogger = o; }, function (e, t, r) { e.exports = r(4), r(14), r(9), r(23), r(31); }, function (e, t, r) { var a = r(0); r(5), r(3), r(10), r(6), r(7), r(29), r(2), r(1), r(17); var n = a.asn1, i = e.exports = a.pkcs7 = a.pkcs7 || {}; function s(e) { var t = {}, r = []; if (!n.validate(e, i.asn1.recipientInfoValidator, t, r)) { var s = new Error("Cannot read PKCS#7 RecipientInfo. ASN.1 object is not an PKCS#7 RecipientInfo."); throw s.errors = r, s; } return { version: t.version.charCodeAt(0), issuer: a.pki.RDNAttributesAsArray(t.issuer), serialNumber: a.util.createBuffer(t.serial).toHex(), encryptedContent: { algorithm: n.derToOid(t.encAlgorithm), parameter: t.encParameter ? t.encParameter.value : void 0, content: t.encKey } }; } function o(e) { for (var t, r = [], i = 0; i < e.length; ++i) r.push((t = e[i], n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.INTEGER, !1, n.integerToDer(t.version).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [a.pki.distinguishedNameToAsn1({ attributes: t.issuer }), n.create(n.Class.UNIVERSAL, n.Type.INTEGER, !1, a.util.hexToBytes(t.serialNumber))]), n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(t.encryptedContent.algorithm).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.NULL, !1, "")]), n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, t.encryptedContent.content)]))); return r; } function c(e) { var t = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.INTEGER, !1, n.integerToDer(e.version).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [a.pki.distinguishedNameToAsn1({ attributes: e.issuer }), n.create(n.Class.UNIVERSAL, n.Type.INTEGER, !1, a.util.hexToBytes(e.serialNumber))]), n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(e.digestAlgorithm).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.NULL, !1, "")])]); if (e.authenticatedAttributesAsn1 && t.value.push(e.authenticatedAttributesAsn1), t.value.push(n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(e.signatureAlgorithm).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.NULL, !1, "")])), t.value.push(n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, e.signature)), e.unauthenticatedAttributes.length > 0) { for (var r = n.create(n.Class.CONTEXT_SPECIFIC, 1, !0, []), i = 0; i < e.unauthenticatedAttributes.length; ++i) { var s = e.unauthenticatedAttributes[i]; r.values.push(u(s)); } t.value.push(r); } return t; } function u(e) { var t; if (e.type === a.pki.oids.contentType) t = n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(e.value).getBytes());else if (e.type === a.pki.oids.messageDigest) t = n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, e.value.bytes());else if (e.type === a.pki.oids.signingTime) { var r = new Date("1950-01-01T00:00:00Z"), i = new Date("2050-01-01T00:00:00Z"), s = e.value; if ("string" == typeof s) { var o = Date.parse(s); s = isNaN(o) ? 13 === s.length ? n.utcTimeToDate(s) : n.generalizedTimeToDate(s) : new Date(o); } t = s >= r && s < i ? n.create(n.Class.UNIVERSAL, n.Type.UTCTIME, !1, n.dateToUtcTime(s)) : n.create(n.Class.UNIVERSAL, n.Type.GENERALIZEDTIME, !1, n.dateToGeneralizedTime(s)); } return n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(e.type).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.SET, !0, [t])]); } function l(e, t, r) { var i = {}; if (!n.validate(t, r, i, [])) { var s = new Error("Cannot read PKCS#7 message. ASN.1 object is not a supported PKCS#7 message."); throw s.errors = s, s; } if (n.derToOid(i.contentType) !== a.pki.oids.data) throw new Error("Unsupported PKCS#7 message. Only wrapped ContentType Data supported."); if (i.encryptedContent) { var o = ""; if (a.util.isArray(i.encryptedContent)) for (var c = 0; c < i.encryptedContent.length; ++c) { if (i.encryptedContent[c].type !== n.Type.OCTETSTRING) throw new Error("Malformed PKCS#7 message, expecting encrypted content constructed of only OCTET STRING objects."); o += i.encryptedContent[c].value; } else o = i.encryptedContent; e.encryptedContent = { algorithm: n.derToOid(i.encAlgorithm), parameter: a.util.createBuffer(i.encParameter.value), content: a.util.createBuffer(o) }; } if (i.content) { o = ""; if (a.util.isArray(i.content)) for (c = 0; c < i.content.length; ++c) { if (i.content[c].type !== n.Type.OCTETSTRING) throw new Error("Malformed PKCS#7 message, expecting content constructed of only OCTET STRING objects."); o += i.content[c].value; } else o = i.content; e.content = a.util.createBuffer(o); } return e.version = i.version.charCodeAt(0), e.rawCapture = i, i; } function p(e) { if (void 0 === e.encryptedContent.key) throw new Error("Symmetric key not available."); if (void 0 === e.content) { var t; switch (e.encryptedContent.algorithm) { case a.pki.oids["aes128-CBC"]: case a.pki.oids["aes192-CBC"]: case a.pki.oids["aes256-CBC"]: t = a.aes.createDecryptionCipher(e.encryptedContent.key); break; case a.pki.oids.desCBC: case a.pki.oids["des-EDE3-CBC"]: t = a.des.createDecryptionCipher(e.encryptedContent.key); break; default: throw new Error("Unsupported symmetric cipher, OID " + e.encryptedContent.algorithm); } if (t.start(e.encryptedContent.parameter), t.update(e.encryptedContent.content), !t.finish()) throw new Error("Symmetric decryption failed."); e.content = t.output; } } i.messageFromPem = function (e) { var t = a.pem.decode(e)[0]; if ("PKCS7" !== t.type) { var r = new Error('Could not convert PKCS#7 message from PEM; PEM header type is not "PKCS#7".'); throw r.headerType = t.type, r; } if (t.procType && "ENCRYPTED" === t.procType.type) throw new Error("Could not convert PKCS#7 message from PEM; PEM is encrypted."); var s = n.fromDer(t.body); return i.messageFromAsn1(s); }, i.messageToPem = function (e, t) { var r = { type: "PKCS7", body: n.toDer(e.toAsn1()).getBytes() }; return a.pem.encode(r, { maxline: t }); }, i.messageFromAsn1 = function (e) { var t = {}, r = []; if (!n.validate(e, i.asn1.contentInfoValidator, t, r)) { var s = new Error("Cannot read PKCS#7 message. ASN.1 object is not an PKCS#7 ContentInfo."); throw s.errors = r, s; } var o, c = n.derToOid(t.contentType); switch (c) { case a.pki.oids.envelopedData: o = i.createEnvelopedData(); break; case a.pki.oids.encryptedData: o = i.createEncryptedData(); break; case a.pki.oids.signedData: o = i.createSignedData(); break; default: throw new Error("Cannot read PKCS#7 message. ContentType with OID " + c + " is not (yet) supported."); } return o.fromAsn1(t.content.value[0]), o; }, i.createSignedData = function () { var e = null; return e = { type: a.pki.oids.signedData, version: 1, certificates: [], crls: [], signers: [], digestAlgorithmIdentifiers: [], contentInfo: null, signerInfos: [], fromAsn1: function (t) { if (l(e, t, i.asn1.signedDataValidator), e.certificates = [], e.crls = [], e.digestAlgorithmIdentifiers = [], e.contentInfo = null, e.signerInfos = [], e.rawCapture.certificates) for (var r = e.rawCapture.certificates.value, n = 0; n < r.length; ++n) e.certificates.push(a.pki.certificateFromAsn1(r[n])); }, toAsn1: function () { e.contentInfo || e.sign(); for (var t = [], r = 0; r < e.certificates.length; ++r) t.push(a.pki.certificateToAsn1(e.certificates[r])); var i = [], s = n.create(n.Class.CONTEXT_SPECIFIC, 0, !0, [n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.INTEGER, !1, n.integerToDer(e.version).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.SET, !0, e.digestAlgorithmIdentifiers), e.contentInfo])]); return t.length > 0 && s.value[0].value.push(n.create(n.Class.CONTEXT_SPECIFIC, 0, !0, t)), i.length > 0 && s.value[0].value.push(n.create(n.Class.CONTEXT_SPECIFIC, 1, !0, i)), s.value[0].value.push(n.create(n.Class.UNIVERSAL, n.Type.SET, !0, e.signerInfos)), n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(e.type).getBytes()), s]); }, addSigner: function (t) { var r = t.issuer, n = t.serialNumber; if (t.certificate) { var i = t.certificate; "string" == typeof i && (i = a.pki.certificateFromPem(i)), r = i.issuer.attributes, n = i.serialNumber; } var s = t.key; if (!s) throw new Error("Could not add PKCS#7 signer; no private key specified."); "string" == typeof s && (s = a.pki.privateKeyFromPem(s)); var o = t.digestAlgorithm || a.pki.oids.sha1; switch (o) { case a.pki.oids.sha1: case a.pki.oids.sha256: case a.pki.oids.sha384: case a.pki.oids.sha512: case a.pki.oids.md5: break; default: throw new Error("Could not add PKCS#7 signer; unknown message digest algorithm: " + o); } var c = t.authenticatedAttributes || []; if (c.length > 0) { for (var u = !1, l = !1, p = 0; p < c.length; ++p) { var f = c[p]; if (u || f.type !== a.pki.oids.contentType) { if (l || f.type !== a.pki.oids.messageDigest) ;else if (l = !0, u) break; } else if (u = !0, l) break; } if (!u || !l) throw new Error("Invalid signer.authenticatedAttributes. If signer.authenticatedAttributes is specified, then it must contain at least two attributes, PKCS #9 content-type and PKCS #9 message-digest."); } e.signers.push({ key: s, version: 1, issuer: r, serialNumber: n, digestAlgorithm: o, signatureAlgorithm: a.pki.oids.rsaEncryption, signature: null, authenticatedAttributes: c, unauthenticatedAttributes: [] }); }, sign: function (t) { var r; (t = t || {}, "object" != typeof e.content || null === e.contentInfo) && (e.contentInfo = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(a.pki.oids.data).getBytes())]), "content" in e && (e.content instanceof a.util.ByteBuffer ? r = e.content.bytes() : "string" == typeof e.content && (r = a.util.encodeUtf8(e.content)), t.detached ? e.detachedContent = n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, r) : e.contentInfo.value.push(n.create(n.Class.CONTEXT_SPECIFIC, 0, !0, [n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, r)])))); 0 !== e.signers.length && function (t) { var r; r = e.detachedContent ? e.detachedContent : (r = e.contentInfo.value[1]).value[0]; if (!r) throw new Error("Could not sign PKCS#7 message; there is no content to sign."); var i = n.derToOid(e.contentInfo.value[0].value), s = n.toDer(r); for (var o in s.getByte(), n.getBerValueLength(s), s = s.getBytes(), t) t[o].start().update(s); for (var l = new Date(), p = 0; p < e.signers.length; ++p) { var f = e.signers[p]; if (0 === f.authenticatedAttributes.length) { if (i !== a.pki.oids.data) throw new Error("Invalid signer; authenticatedAttributes must be present when the ContentInfo content type is not PKCS#7 Data."); } else { f.authenticatedAttributesAsn1 = n.create(n.Class.CONTEXT_SPECIFIC, 0, !0, []); for (var h = n.create(n.Class.UNIVERSAL, n.Type.SET, !0, []), d = 0; d < f.authenticatedAttributes.length; ++d) { var y = f.authenticatedAttributes[d]; y.type === a.pki.oids.messageDigest ? y.value = t[f.digestAlgorithm].digest() : y.type === a.pki.oids.signingTime && (y.value || (y.value = l)), h.value.push(u(y)), f.authenticatedAttributesAsn1.value.push(u(y)); } s = n.toDer(h).getBytes(), f.md.start().update(s); } f.signature = f.key.sign(f.md, "RSASSA-PKCS1-V1_5"); } e.signerInfos = function (e) { for (var t = [], r = 0; r < e.length; ++r) t.push(c(e[r])); return t; }(e.signers); }(function () { for (var t = {}, r = 0; r < e.signers.length; ++r) { var i = e.signers[r]; (s = i.digestAlgorithm) in t || (t[s] = a.md[a.pki.oids[s]].create()), 0 === i.authenticatedAttributes.length ? i.md = t[s] : i.md = a.md[a.pki.oids[s]].create(); } for (var s in e.digestAlgorithmIdentifiers = [], t) e.digestAlgorithmIdentifiers.push(n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(s).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.NULL, !1, "")])); return t; }()); }, verify: function () { throw new Error("PKCS#7 signature verification not yet implemented."); }, addCertificate: function (t) { "string" == typeof t && (t = a.pki.certificateFromPem(t)), e.certificates.push(t); }, addCertificateRevokationList: function (e) { throw new Error("PKCS#7 CRL support not yet implemented."); } }; }, i.createEncryptedData = function () { var e = null; return e = { type: a.pki.oids.encryptedData, version: 0, encryptedContent: { algorithm: a.pki.oids["aes256-CBC"] }, fromAsn1: function (t) { l(e, t, i.asn1.encryptedDataValidator); }, decrypt: function (t) { void 0 !== t && (e.encryptedContent.key = t), p(e); } }; }, i.createEnvelopedData = function () { var e = null; return e = { type: a.pki.oids.envelopedData, version: 0, recipients: [], encryptedContent: { algorithm: a.pki.oids["aes256-CBC"] }, fromAsn1: function (t) { var r = l(e, t, i.asn1.envelopedDataValidator); e.recipients = function (e) { for (var t = [], r = 0; r < e.length; ++r) t.push(s(e[r])); return t; }(r.recipientInfos.value); }, toAsn1: function () { return n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(e.type).getBytes()), n.create(n.Class.CONTEXT_SPECIFIC, 0, !0, [n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.INTEGER, !1, n.integerToDer(e.version).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.SET, !0, o(e.recipients)), n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, (t = e.encryptedContent, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(a.pki.oids.data).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(t.algorithm).getBytes()), t.parameter ? n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, t.parameter.getBytes()) : void 0]), n.create(n.Class.CONTEXT_SPECIFIC, 0, !0, [n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, t.content.getBytes())])]))])])]); var t; }, findRecipient: function (t) { for (var r = t.issuer.attributes, a = 0; a < e.recipients.length; ++a) { var n = e.recipients[a], i = n.issuer; if (n.serialNumber === t.serialNumber && i.length === r.length) { for (var s = !0, o = 0; o < r.length; ++o) if (i[o].type !== r[o].type || i[o].value !== r[o].value) { s = !1; break; } if (s) return n; } } return null; }, decrypt: function (t, r) { if (void 0 === e.encryptedContent.key && void 0 !== t && void 0 !== r) switch (t.encryptedContent.algorithm) { case a.pki.oids.rsaEncryption: case a.pki.oids.desCBC: var n = r.decrypt(t.encryptedContent.content); e.encryptedContent.key = a.util.createBuffer(n); break; default: throw new Error("Unsupported asymmetric cipher, OID " + t.encryptedContent.algorithm); } p(e); }, addRecipient: function (t) { e.recipients.push({ version: 0, issuer: t.issuer.attributes, serialNumber: t.serialNumber, encryptedContent: { algorithm: a.pki.oids.rsaEncryption, key: t.publicKey } }); }, encrypt: function (t, r) { if (void 0 === e.encryptedContent.content) { var n, i, s; switch (r = r || e.encryptedContent.algorithm, t = t || e.encryptedContent.key, r) { case a.pki.oids["aes128-CBC"]: n = 16, i = 16, s = a.aes.createEncryptionCipher; break; case a.pki.oids["aes192-CBC"]: n = 24, i = 16, s = a.aes.createEncryptionCipher; break; case a.pki.oids["aes256-CBC"]: n = 32, i = 16, s = a.aes.createEncryptionCipher; break; case a.pki.oids["des-EDE3-CBC"]: n = 24, i = 8, s = a.des.createEncryptionCipher; break; default: throw new Error("Unsupported symmetric cipher, OID " + r); } if (void 0 === t) t = a.util.createBuffer(a.random.getBytes(n));else if (t.length() != n) throw new Error("Symmetric key has wrong length; got " + t.length() + " bytes, expected " + n + "."); e.encryptedContent.algorithm = r, e.encryptedContent.key = t, e.encryptedContent.parameter = a.util.createBuffer(a.random.getBytes(i)); var o = s(t); if (o.start(e.encryptedContent.parameter.copy()), o.update(e.content), !o.finish()) throw new Error("Symmetric encryption failed."); e.encryptedContent.content = o.output; } for (var c = 0; c < e.recipients.length; ++c) { var u = e.recipients[c]; if (void 0 === u.encryptedContent.content) switch (u.encryptedContent.algorithm) { case a.pki.oids.rsaEncryption: u.encryptedContent.content = u.encryptedContent.key.encrypt(e.encryptedContent.key.data); break; default: throw new Error("Unsupported asymmetric cipher, OID " + u.encryptedContent.algorithm); } } } }; }; }, function (e, t, r) { var a = r(0); r(5), r(8), r(14), r(9), r(1); var n = e.exports = a.ssh = a.ssh || {}; function i(e, t) { var r = t.toString(16); r[0] >= "8" && (r = "00" + r); var n = a.util.hexToBytes(r); e.putInt32(n.length), e.putBytes(n); } function s(e, t) { e.putInt32(t.length), e.putString(t); } function o() { for (var e = a.md.sha1.create(), t = arguments.length, r = 0; r < t; ++r) e.update(arguments[r]); return e.digest(); } n.privateKeyToPutty = function (e, t, r) { var n = "" === (t = t || "") ? "none" : "aes256-cbc", c = "PuTTY-User-Key-File-2: ssh-rsa\r\n"; c += "Encryption: " + n + "\r\n", c += "Comment: " + (r = r || "") + "\r\n"; var u = a.util.createBuffer(); s(u, "ssh-rsa"), i(u, e.e), i(u, e.n); var l = a.util.encode64(u.bytes(), 64), p = Math.floor(l.length / 66) + 1; c += "Public-Lines: " + p + "\r\n", c += l; var f, h = a.util.createBuffer(); if (i(h, e.d), i(h, e.p), i(h, e.q), i(h, e.qInv), t) { var d = h.length() + 16 - 1; d -= d % 16; var y = o(h.bytes()); y.truncate(y.length() - d + h.length()), h.putBuffer(y); var g = a.util.createBuffer(); g.putBuffer(o("\0\0\0\0", t)), g.putBuffer(o("\0\0\0", t)); var m = a.aes.createEncryptionCipher(g.truncate(8), "CBC"); m.start(a.util.createBuffer().fillWithByte(0, 16)), m.update(h.copy()), m.finish(); var v = m.output; v.truncate(16), f = a.util.encode64(v.bytes(), 64); } else f = a.util.encode64(h.bytes(), 64); c += "\r\nPrivate-Lines: " + (p = Math.floor(f.length / 66) + 1) + "\r\n", c += f; var C = o("putty-private-key-file-mac-key", t), E = a.util.createBuffer(); s(E, "ssh-rsa"), s(E, n), s(E, r), E.putInt32(u.length()), E.putBuffer(u), E.putInt32(h.length()), E.putBuffer(h); var S = a.hmac.create(); return S.start("sha1", C), S.update(E.bytes()), c += "\r\nPrivate-MAC: " + S.digest().toHex() + "\r\n"; }, n.publicKeyToOpenSSH = function (e, t) { t = t || ""; var r = a.util.createBuffer(); return s(r, "ssh-rsa"), i(r, e.e), i(r, e.n), "ssh-rsa " + a.util.encode64(r.bytes()) + " " + t; }, n.privateKeyToOpenSSH = function (e, t) { return t ? a.pki.encryptRsaPrivateKey(e, t, { legacy: !0, algorithm: "aes128" }) : a.pki.privateKeyToPem(e); }, n.getPublicKeyFingerprint = function (e, t) { var r = (t = t || {}).md || a.md.md5.create(), n = a.util.createBuffer(); s(n, "ssh-rsa"), i(n, e.e), i(n, e.n), r.start(), r.update(n.getBytes()); var o = r.digest(); if ("hex" === t.encoding) { var c = o.toHex(); return t.delimiter ? c.match(/.{2}/g).join(t.delimiter) : c; } if ("binary" === t.encoding) return o.getBytes(); if (t.encoding) throw new Error('Unknown encoding "' + t.encoding + '".'); return o; }; }]); }); }); /***/ }), /***/ 9662: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var isCallable = __webpack_require__(614); var tryToString = __webpack_require__(6330); var TypeError = global.TypeError; // `Assert: IsCallable(argument) is true` module.exports = function (argument) { if (isCallable(argument)) return argument; throw TypeError(tryToString(argument) + ' is not a function'); }; /***/ }), /***/ 6077: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var isCallable = __webpack_require__(614); var String = global.String; var TypeError = global.TypeError; module.exports = function (argument) { if (typeof argument == 'object' || isCallable(argument)) return argument; throw TypeError("Can't set " + String(argument) + ' as a prototype'); }; /***/ }), /***/ 1530: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var charAt = __webpack_require__(8710).charAt; // `AdvanceStringIndex` abstract operation // https://tc39.es/ecma262/#sec-advancestringindex module.exports = function (S, index, unicode) { return index + (unicode ? charAt(S, index).length : 1); }; /***/ }), /***/ 9670: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var isObject = __webpack_require__(111); var String = global.String; var TypeError = global.TypeError; // `Assert: Type(argument) is Object` module.exports = function (argument) { if (isObject(argument)) return argument; throw TypeError(String(argument) + ' is not an object'); }; /***/ }), /***/ 4019: /***/ ((module) => { // eslint-disable-next-line es/no-typed-arrays -- safe module.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined'; /***/ }), /***/ 260: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var NATIVE_ARRAY_BUFFER = __webpack_require__(4019); var DESCRIPTORS = __webpack_require__(9781); var global = __webpack_require__(7854); var isCallable = __webpack_require__(614); var isObject = __webpack_require__(111); var hasOwn = __webpack_require__(2597); var classof = __webpack_require__(648); var tryToString = __webpack_require__(6330); var createNonEnumerableProperty = __webpack_require__(8880); var redefine = __webpack_require__(1320); var defineProperty = __webpack_require__(3070).f; var isPrototypeOf = __webpack_require__(7976); var getPrototypeOf = __webpack_require__(9518); var setPrototypeOf = __webpack_require__(7674); var wellKnownSymbol = __webpack_require__(5112); var uid = __webpack_require__(9711); var Int8Array = global.Int8Array; var Int8ArrayPrototype = Int8Array && Int8Array.prototype; var Uint8ClampedArray = global.Uint8ClampedArray; var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype; var TypedArray = Int8Array && getPrototypeOf(Int8Array); var TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype); var ObjectPrototype = Object.prototype; var TypeError = global.TypeError; var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG'); var TYPED_ARRAY_CONSTRUCTOR = uid('TYPED_ARRAY_CONSTRUCTOR'); // Fixing native typed arrays in Opera Presto crashes the browser, see #595 var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera'; var TYPED_ARRAY_TAG_REQUIRED = false; var NAME, Constructor, Prototype; var TypedArrayConstructorsList = { Int8Array: 1, Uint8Array: 1, Uint8ClampedArray: 1, Int16Array: 2, Uint16Array: 2, Int32Array: 4, Uint32Array: 4, Float32Array: 4, Float64Array: 8 }; var BigIntArrayConstructorsList = { BigInt64Array: 8, BigUint64Array: 8 }; var isView = function isView(it) { if (!isObject(it)) return false; var klass = classof(it); return klass === 'DataView' || hasOwn(TypedArrayConstructorsList, klass) || hasOwn(BigIntArrayConstructorsList, klass); }; var isTypedArray = function (it) { if (!isObject(it)) return false; var klass = classof(it); return hasOwn(TypedArrayConstructorsList, klass) || hasOwn(BigIntArrayConstructorsList, klass); }; var aTypedArray = function (it) { if (isTypedArray(it)) return it; throw TypeError('Target is not a typed array'); }; var aTypedArrayConstructor = function (C) { if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C; throw TypeError(tryToString(C) + ' is not a typed array constructor'); }; var exportTypedArrayMethod = function (KEY, property, forced, options) { if (!DESCRIPTORS) return; if (forced) for (var ARRAY in TypedArrayConstructorsList) { var TypedArrayConstructor = global[ARRAY]; if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try { delete TypedArrayConstructor.prototype[KEY]; } catch (error) { // old WebKit bug - some methods are non-configurable try { TypedArrayConstructor.prototype[KEY] = property; } catch (error2) { /* empty */ } } } if (!TypedArrayPrototype[KEY] || forced) { redefine(TypedArrayPrototype, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options); } }; var exportTypedArrayStaticMethod = function (KEY, property, forced) { var ARRAY, TypedArrayConstructor; if (!DESCRIPTORS) return; if (setPrototypeOf) { if (forced) for (ARRAY in TypedArrayConstructorsList) { TypedArrayConstructor = global[ARRAY]; if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try { delete TypedArrayConstructor[KEY]; } catch (error) { /* empty */ } } if (!TypedArray[KEY] || forced) { // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable try { return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property); } catch (error) { /* empty */ } } else return; } for (ARRAY in TypedArrayConstructorsList) { TypedArrayConstructor = global[ARRAY]; if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) { redefine(TypedArrayConstructor, KEY, property); } } }; for (NAME in TypedArrayConstructorsList) { Constructor = global[NAME]; Prototype = Constructor && Constructor.prototype; if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor); else NATIVE_ARRAY_BUFFER_VIEWS = false; } for (NAME in BigIntArrayConstructorsList) { Constructor = global[NAME]; Prototype = Constructor && Constructor.prototype; if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor); } // WebKit bug - typed arrays constructors prototype is Object.prototype if (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) { // eslint-disable-next-line no-shadow -- safe TypedArray = function TypedArray() { throw TypeError('Incorrect invocation'); }; if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { if (global[NAME]) setPrototypeOf(global[NAME], TypedArray); } } if (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) { TypedArrayPrototype = TypedArray.prototype; if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype); } } // WebKit bug - one more object in Uint8ClampedArray prototype chain if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) { setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype); } if (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) { TYPED_ARRAY_TAG_REQUIRED = true; defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () { return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined; } }); for (NAME in TypedArrayConstructorsList) if (global[NAME]) { createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME); } } module.exports = { NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS, TYPED_ARRAY_CONSTRUCTOR: TYPED_ARRAY_CONSTRUCTOR, TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG, aTypedArray: aTypedArray, aTypedArrayConstructor: aTypedArrayConstructor, exportTypedArrayMethod: exportTypedArrayMethod, exportTypedArrayStaticMethod: exportTypedArrayStaticMethod, isView: isView, isTypedArray: isTypedArray, TypedArray: TypedArray, TypedArrayPrototype: TypedArrayPrototype }; /***/ }), /***/ 1318: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var toIndexedObject = __webpack_require__(5656); var toAbsoluteIndex = __webpack_require__(1400); var lengthOfArrayLike = __webpack_require__(6244); // `Array.prototype.{ indexOf, includes }` methods implementation var createMethod = function (IS_INCLUDES) { return function ($this, el, fromIndex) { var O = toIndexedObject($this); var length = lengthOfArrayLike(O); var index = toAbsoluteIndex(fromIndex, length); var value; // Array#includes uses SameValueZero equality algorithm // eslint-disable-next-line no-self-compare -- NaN check if (IS_INCLUDES && el != el) while (length > index) { value = O[index++]; // eslint-disable-next-line no-self-compare -- NaN check if (value != value) return true; // Array#indexOf ignores holes, Array#includes - not } else for (;length > index; index++) { if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; } return !IS_INCLUDES && -1; }; }; module.exports = { // `Array.prototype.includes` method // https://tc39.es/ecma262/#sec-array.prototype.includes includes: createMethod(true), // `Array.prototype.indexOf` method // https://tc39.es/ecma262/#sec-array.prototype.indexof indexOf: createMethod(false) }; /***/ }), /***/ 9341: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var fails = __webpack_require__(7293); module.exports = function (METHOD_NAME, argument) { var method = [][METHOD_NAME]; return !!method && fails(function () { // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing method.call(null, argument || function () { throw 1; }, 1); }); }; /***/ }), /***/ 3671: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var aCallable = __webpack_require__(9662); var toObject = __webpack_require__(7908); var IndexedObject = __webpack_require__(8361); var lengthOfArrayLike = __webpack_require__(6244); var TypeError = global.TypeError; // `Array.prototype.{ reduce, reduceRight }` methods implementation var createMethod = function (IS_RIGHT) { return function (that, callbackfn, argumentsLength, memo) { aCallable(callbackfn); var O = toObject(that); var self = IndexedObject(O); var length = lengthOfArrayLike(O); var index = IS_RIGHT ? length - 1 : 0; var i = IS_RIGHT ? -1 : 1; if (argumentsLength < 2) while (true) { if (index in self) { memo = self[index]; index += i; break; } index += i; if (IS_RIGHT ? index < 0 : length <= index) { throw TypeError('Reduce of empty array with no initial value'); } } for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) { memo = callbackfn(memo, self[index], index, O); } return memo; }; }; module.exports = { // `Array.prototype.reduce` method // https://tc39.es/ecma262/#sec-array.prototype.reduce left: createMethod(false), // `Array.prototype.reduceRight` method // https://tc39.es/ecma262/#sec-array.prototype.reduceright right: createMethod(true) }; /***/ }), /***/ 206: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var uncurryThis = __webpack_require__(1702); module.exports = uncurryThis([].slice); /***/ }), /***/ 4326: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var uncurryThis = __webpack_require__(1702); var toString = uncurryThis({}.toString); var stringSlice = uncurryThis(''.slice); module.exports = function (it) { return stringSlice(toString(it), 8, -1); }; /***/ }), /***/ 648: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var TO_STRING_TAG_SUPPORT = __webpack_require__(1694); var isCallable = __webpack_require__(614); var classofRaw = __webpack_require__(4326); var wellKnownSymbol = __webpack_require__(5112); var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var Object = global.Object; // ES3 wrong here var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; // fallback for IE11 Script Access Denied error var tryGet = function (it, key) { try { return it[key]; } catch (error) { /* empty */ } }; // getting tag from ES6+ `Object.prototype.toString` module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { var O, tag, result; return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag // builtinTag case : CORRECT_ARGUMENTS ? classofRaw(O) // ES3 arguments fallback : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result; }; /***/ }), /***/ 9920: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var hasOwn = __webpack_require__(2597); var ownKeys = __webpack_require__(3887); var getOwnPropertyDescriptorModule = __webpack_require__(1236); var definePropertyModule = __webpack_require__(3070); module.exports = function (target, source, exceptions) { var keys = ownKeys(source); var defineProperty = definePropertyModule.f; var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; for (var i = 0; i < keys.length; i++) { var key = keys[i]; if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) { defineProperty(target, key, getOwnPropertyDescriptor(source, key)); } } }; /***/ }), /***/ 8544: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var fails = __webpack_require__(7293); module.exports = !fails(function () { function F() { /* empty */ } F.prototype.constructor = null; // eslint-disable-next-line es/no-object-getprototypeof -- required for testing return Object.getPrototypeOf(new F()) !== F.prototype; }); /***/ }), /***/ 8880: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var DESCRIPTORS = __webpack_require__(9781); var definePropertyModule = __webpack_require__(3070); var createPropertyDescriptor = __webpack_require__(9114); module.exports = DESCRIPTORS ? function (object, key, value) { return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); } : function (object, key, value) { object[key] = value; return object; }; /***/ }), /***/ 9114: /***/ ((module) => { module.exports = function (bitmap, value) { return { enumerable: !(bitmap & 1), configurable: !(bitmap & 2), writable: !(bitmap & 4), value: value }; }; /***/ }), /***/ 9781: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var fails = __webpack_require__(7293); // Detect IE8's incomplete defineProperty implementation module.exports = !fails(function () { // eslint-disable-next-line es/no-object-defineproperty -- required for testing return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; }); /***/ }), /***/ 317: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var isObject = __webpack_require__(111); var document = global.document; // typeof document.createElement is 'object' in old IE var EXISTS = isObject(document) && isObject(document.createElement); module.exports = function (it) { return EXISTS ? document.createElement(it) : {}; }; /***/ }), /***/ 6833: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var userAgent = __webpack_require__(8113); module.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent); /***/ }), /***/ 5268: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var classof = __webpack_require__(4326); var global = __webpack_require__(7854); module.exports = classof(global.process) == 'process'; /***/ }), /***/ 8113: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var getBuiltIn = __webpack_require__(5005); module.exports = getBuiltIn('navigator', 'userAgent') || ''; /***/ }), /***/ 7392: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var userAgent = __webpack_require__(8113); var process = global.process; var Deno = global.Deno; var versions = process && process.versions || Deno && Deno.version; var v8 = versions && versions.v8; var match, version; if (v8) { match = v8.split('.'); // in old Chrome, versions of V8 isn't V8 = Chrome / 10 // but their correct versions are not interesting for us version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); } // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` // so check `userAgent` even if `.v8` exists, but 0 if (!version && userAgent) { match = userAgent.match(/Edge\/(\d+)/); if (!match || match[1] >= 74) { match = userAgent.match(/Chrome\/(\d+)/); if (match) version = +match[1]; } } module.exports = version; /***/ }), /***/ 748: /***/ ((module) => { // IE8- don't enum bug keys module.exports = [ 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf' ]; /***/ }), /***/ 2109: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var getOwnPropertyDescriptor = __webpack_require__(1236).f; var createNonEnumerableProperty = __webpack_require__(8880); var redefine = __webpack_require__(1320); var setGlobal = __webpack_require__(3505); var copyConstructorProperties = __webpack_require__(9920); var isForced = __webpack_require__(4705); /* options.target - name of the target object options.global - target is the global object options.stat - export as static methods of target options.proto - export as prototype methods of target options.real - real prototype method for the `pure` version options.forced - export even if the native feature is available options.bind - bind methods to the target, required for the `pure` version options.wrap - wrap constructors to preventing global pollution, required for the `pure` version options.unsafe - use the simple assignment of property instead of delete + defineProperty options.sham - add a flag to not completely full polyfills options.enumerable - export as enumerable property options.noTargetGet - prevent calling a getter on target options.name - the .name of the function if it does not match the key */ module.exports = function (options, source) { var TARGET = options.target; var GLOBAL = options.global; var STATIC = options.stat; var FORCED, target, key, targetProperty, sourceProperty, descriptor; if (GLOBAL) { target = global; } else if (STATIC) { target = global[TARGET] || setGlobal(TARGET, {}); } else { target = (global[TARGET] || {}).prototype; } if (target) for (key in source) { sourceProperty = source[key]; if (options.noTargetGet) { descriptor = getOwnPropertyDescriptor(target, key); targetProperty = descriptor && descriptor.value; } else targetProperty = target[key]; FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); // contained in target if (!FORCED && targetProperty !== undefined) { if (typeof sourceProperty == typeof targetProperty) continue; copyConstructorProperties(sourceProperty, targetProperty); } // add a flag to not completely full polyfills if (options.sham || (targetProperty && targetProperty.sham)) { createNonEnumerableProperty(sourceProperty, 'sham', true); } // extend global redefine(target, key, sourceProperty, options); } }; /***/ }), /***/ 7293: /***/ ((module) => { module.exports = function (exec) { try { return !!exec(); } catch (error) { return true; } }; /***/ }), /***/ 7007: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; // TODO: Remove from `core-js@4` since it's moved to entry points __webpack_require__(4916); var uncurryThis = __webpack_require__(1702); var redefine = __webpack_require__(1320); var regexpExec = __webpack_require__(2261); var fails = __webpack_require__(7293); var wellKnownSymbol = __webpack_require__(5112); var createNonEnumerableProperty = __webpack_require__(8880); var SPECIES = wellKnownSymbol('species'); var RegExpPrototype = RegExp.prototype; module.exports = function (KEY, exec, FORCED, SHAM) { var SYMBOL = wellKnownSymbol(KEY); var DELEGATES_TO_SYMBOL = !fails(function () { // String methods call symbol-named RegEp methods var O = {}; O[SYMBOL] = function () { return 7; }; return ''[KEY](O) != 7; }); var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () { // Symbol-named RegExp methods call .exec var execCalled = false; var re = /a/; if (KEY === 'split') { // We can't use real regex here since it causes deoptimization // and serious performance degradation in V8 // https://github.com/zloirock/core-js/issues/306 re = {}; // RegExp[@@split] doesn't call the regex's exec method, but first creates // a new one. We need to return the patched regex when creating the new one. re.constructor = {}; re.constructor[SPECIES] = function () { return re; }; re.flags = ''; re[SYMBOL] = /./[SYMBOL]; } re.exec = function () { execCalled = true; return null; }; re[SYMBOL](''); return !execCalled; }); if ( !DELEGATES_TO_SYMBOL || !DELEGATES_TO_EXEC || FORCED ) { var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]); var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { var uncurriedNativeMethod = uncurryThis(nativeMethod); var $exec = regexp.exec; if ($exec === regexpExec || $exec === RegExpPrototype.exec) { if (DELEGATES_TO_SYMBOL && !forceStringMethod) { // The native String method already delegates to @@method (this // polyfilled function), leasing to infinite recursion. // We avoid it by directly calling the native @@method method. return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) }; } return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) }; } return { done: false }; }); redefine(String.prototype, KEY, methods[0]); redefine(RegExpPrototype, SYMBOL, methods[1]); } if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true); }; /***/ }), /***/ 2104: /***/ ((module) => { var FunctionPrototype = Function.prototype; var apply = FunctionPrototype.apply; var bind = FunctionPrototype.bind; var call = FunctionPrototype.call; // eslint-disable-next-line es/no-reflect -- safe module.exports = typeof Reflect == 'object' && Reflect.apply || (bind ? call.bind(apply) : function () { return call.apply(apply, arguments); }); /***/ }), /***/ 9974: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var uncurryThis = __webpack_require__(1702); var aCallable = __webpack_require__(9662); var bind = uncurryThis(uncurryThis.bind); // optional / simple context binding module.exports = function (fn, that) { aCallable(fn); return that === undefined ? fn : bind ? bind(fn, that) : function (/* ...args */) { return fn.apply(that, arguments); }; }; /***/ }), /***/ 6916: /***/ ((module) => { var call = Function.prototype.call; module.exports = call.bind ? call.bind(call) : function () { return call.apply(call, arguments); }; /***/ }), /***/ 6530: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var DESCRIPTORS = __webpack_require__(9781); var hasOwn = __webpack_require__(2597); var FunctionPrototype = Function.prototype; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; var EXISTS = hasOwn(FunctionPrototype, 'name'); // additional protection from minified / mangled / dropped function names var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable)); module.exports = { EXISTS: EXISTS, PROPER: PROPER, CONFIGURABLE: CONFIGURABLE }; /***/ }), /***/ 1702: /***/ ((module) => { var FunctionPrototype = Function.prototype; var bind = FunctionPrototype.bind; var call = FunctionPrototype.call; var uncurryThis = bind && bind.bind(call, call); module.exports = bind ? function (fn) { return fn && uncurryThis(fn); } : function (fn) { return fn && function () { return call.apply(fn, arguments); }; }; /***/ }), /***/ 5005: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var isCallable = __webpack_require__(614); var aFunction = function (argument) { return isCallable(argument) ? argument : undefined; }; module.exports = function (namespace, method) { return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method]; }; /***/ }), /***/ 8173: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var aCallable = __webpack_require__(9662); // `GetMethod` abstract operation // https://tc39.es/ecma262/#sec-getmethod module.exports = function (V, P) { var func = V[P]; return func == null ? undefined : aCallable(func); }; /***/ }), /***/ 647: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var uncurryThis = __webpack_require__(1702); var toObject = __webpack_require__(7908); var floor = Math.floor; var charAt = uncurryThis(''.charAt); var replace = uncurryThis(''.replace); var stringSlice = uncurryThis(''.slice); var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g; var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g; // `GetSubstitution` abstract operation // https://tc39.es/ecma262/#sec-getsubstitution module.exports = function (matched, str, position, captures, namedCaptures, replacement) { var tailPos = position + matched.length; var m = captures.length; var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; if (namedCaptures !== undefined) { namedCaptures = toObject(namedCaptures); symbols = SUBSTITUTION_SYMBOLS; } return replace(replacement, symbols, function (match, ch) { var capture; switch (charAt(ch, 0)) { case '$': return '$'; case '&': return matched; case '`': return stringSlice(str, 0, position); case "'": return stringSlice(str, tailPos); case '<': capture = namedCaptures[stringSlice(ch, 1, -1)]; break; default: // \d\d? var n = +ch; if (n === 0) return match; if (n > m) { var f = floor(n / 10); if (f === 0) return match; if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1); return match; } capture = captures[n - 1]; } return capture === undefined ? '' : capture; }); }; /***/ }), /***/ 7854: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var check = function (it) { return it && it.Math == Math && it; }; // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 module.exports = // eslint-disable-next-line es/no-global-this -- safe check(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || // eslint-disable-next-line no-restricted-globals -- safe check(typeof self == 'object' && self) || check(typeof __webpack_require__.g == 'object' && __webpack_require__.g) || // eslint-disable-next-line no-new-func -- fallback (function () { return this; })() || Function('return this')(); /***/ }), /***/ 2597: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var uncurryThis = __webpack_require__(1702); var toObject = __webpack_require__(7908); var hasOwnProperty = uncurryThis({}.hasOwnProperty); // `HasOwnProperty` abstract operation // https://tc39.es/ecma262/#sec-hasownproperty module.exports = Object.hasOwn || function hasOwn(it, key) { return hasOwnProperty(toObject(it), key); }; /***/ }), /***/ 3501: /***/ ((module) => { module.exports = {}; /***/ }), /***/ 490: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var getBuiltIn = __webpack_require__(5005); module.exports = getBuiltIn('document', 'documentElement'); /***/ }), /***/ 4664: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var DESCRIPTORS = __webpack_require__(9781); var fails = __webpack_require__(7293); var createElement = __webpack_require__(317); // Thank's IE8 for his funny defineProperty module.exports = !DESCRIPTORS && !fails(function () { // eslint-disable-next-line es/no-object-defineproperty -- required for testing return Object.defineProperty(createElement('div'), 'a', { get: function () { return 7; } }).a != 7; }); /***/ }), /***/ 8361: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var uncurryThis = __webpack_require__(1702); var fails = __webpack_require__(7293); var classof = __webpack_require__(4326); var Object = global.Object; var split = uncurryThis(''.split); // fallback for non-array-like ES3 and non-enumerable old V8 strings module.exports = fails(function () { // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 // eslint-disable-next-line no-prototype-builtins -- safe return !Object('z').propertyIsEnumerable(0); }) ? function (it) { return classof(it) == 'String' ? split(it, '') : Object(it); } : Object; /***/ }), /***/ 9587: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var isCallable = __webpack_require__(614); var isObject = __webpack_require__(111); var setPrototypeOf = __webpack_require__(7674); // makes subclassing work correct for wrapped built-ins module.exports = function ($this, dummy, Wrapper) { var NewTarget, NewTargetPrototype; if ( // it can work only with native `setPrototypeOf` setPrototypeOf && // we haven't completely correct pre-ES6 way for getting `new.target`, so use this isCallable(NewTarget = dummy.constructor) && NewTarget !== Wrapper && isObject(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype ) setPrototypeOf($this, NewTargetPrototype); return $this; }; /***/ }), /***/ 2788: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var uncurryThis = __webpack_require__(1702); var isCallable = __webpack_require__(614); var store = __webpack_require__(5465); var functionToString = uncurryThis(Function.toString); // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper if (!isCallable(store.inspectSource)) { store.inspectSource = function (it) { return functionToString(it); }; } module.exports = store.inspectSource; /***/ }), /***/ 9909: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var NATIVE_WEAK_MAP = __webpack_require__(8536); var global = __webpack_require__(7854); var uncurryThis = __webpack_require__(1702); var isObject = __webpack_require__(111); var createNonEnumerableProperty = __webpack_require__(8880); var hasOwn = __webpack_require__(2597); var shared = __webpack_require__(5465); var sharedKey = __webpack_require__(6200); var hiddenKeys = __webpack_require__(3501); var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; var TypeError = global.TypeError; var WeakMap = global.WeakMap; var set, get, has; var enforce = function (it) { return has(it) ? get(it) : set(it, {}); }; var getterFor = function (TYPE) { return function (it) { var state; if (!isObject(it) || (state = get(it)).type !== TYPE) { throw TypeError('Incompatible receiver, ' + TYPE + ' required'); } return state; }; }; if (NATIVE_WEAK_MAP || shared.state) { var store = shared.state || (shared.state = new WeakMap()); var wmget = uncurryThis(store.get); var wmhas = uncurryThis(store.has); var wmset = uncurryThis(store.set); set = function (it, metadata) { if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); metadata.facade = it; wmset(store, it, metadata); return metadata; }; get = function (it) { return wmget(store, it) || {}; }; has = function (it) { return wmhas(store, it); }; } else { var STATE = sharedKey('state'); hiddenKeys[STATE] = true; set = function (it, metadata) { if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); metadata.facade = it; createNonEnumerableProperty(it, STATE, metadata); return metadata; }; get = function (it) { return hasOwn(it, STATE) ? it[STATE] : {}; }; has = function (it) { return hasOwn(it, STATE); }; } module.exports = { set: set, get: get, has: has, enforce: enforce, getterFor: getterFor }; /***/ }), /***/ 614: /***/ ((module) => { // `IsCallable` abstract operation // https://tc39.es/ecma262/#sec-iscallable module.exports = function (argument) { return typeof argument == 'function'; }; /***/ }), /***/ 4705: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var fails = __webpack_require__(7293); var isCallable = __webpack_require__(614); var replacement = /#|\.prototype\./; var isForced = function (feature, detection) { var value = data[normalize(feature)]; return value == POLYFILL ? true : value == NATIVE ? false : isCallable(detection) ? fails(detection) : !!detection; }; var normalize = isForced.normalize = function (string) { return String(string).replace(replacement, '.').toLowerCase(); }; var data = isForced.data = {}; var NATIVE = isForced.NATIVE = 'N'; var POLYFILL = isForced.POLYFILL = 'P'; module.exports = isForced; /***/ }), /***/ 111: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var isCallable = __webpack_require__(614); module.exports = function (it) { return typeof it == 'object' ? it !== null : isCallable(it); }; /***/ }), /***/ 1913: /***/ ((module) => { module.exports = false; /***/ }), /***/ 7850: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var isObject = __webpack_require__(111); var classof = __webpack_require__(4326); var wellKnownSymbol = __webpack_require__(5112); var MATCH = wellKnownSymbol('match'); // `IsRegExp` abstract operation // https://tc39.es/ecma262/#sec-isregexp module.exports = function (it) { var isRegExp; return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp'); }; /***/ }), /***/ 2190: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var getBuiltIn = __webpack_require__(5005); var isCallable = __webpack_require__(614); var isPrototypeOf = __webpack_require__(7976); var USE_SYMBOL_AS_UID = __webpack_require__(3307); var Object = global.Object; module.exports = USE_SYMBOL_AS_UID ? function (it) { return typeof it == 'symbol'; } : function (it) { var $Symbol = getBuiltIn('Symbol'); return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it)); }; /***/ }), /***/ 6244: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var toLength = __webpack_require__(7466); // `LengthOfArrayLike` abstract operation // https://tc39.es/ecma262/#sec-lengthofarraylike module.exports = function (obj) { return toLength(obj.length); }; /***/ }), /***/ 133: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { /* eslint-disable es/no-symbol -- required for testing */ var V8_VERSION = __webpack_require__(7392); var fails = __webpack_require__(7293); // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing module.exports = !!Object.getOwnPropertySymbols && !fails(function () { var symbol = Symbol(); // Chrome 38 Symbol has incorrect toString conversion // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances return !String(symbol) || !(Object(symbol) instanceof Symbol) || // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances !Symbol.sham && V8_VERSION && V8_VERSION < 41; }); /***/ }), /***/ 8536: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var isCallable = __webpack_require__(614); var inspectSource = __webpack_require__(2788); var WeakMap = global.WeakMap; module.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap)); /***/ }), /***/ 30: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { /* global ActiveXObject -- old IE, WSH */ var anObject = __webpack_require__(9670); var definePropertiesModule = __webpack_require__(6048); var enumBugKeys = __webpack_require__(748); var hiddenKeys = __webpack_require__(3501); var html = __webpack_require__(490); var documentCreateElement = __webpack_require__(317); var sharedKey = __webpack_require__(6200); var GT = '>'; var LT = '<'; var PROTOTYPE = 'prototype'; var SCRIPT = 'script'; var IE_PROTO = sharedKey('IE_PROTO'); var EmptyConstructor = function () { /* empty */ }; var scriptTag = function (content) { return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; }; // Create object with fake `null` prototype: use ActiveX Object with cleared prototype var NullProtoObjectViaActiveX = function (activeXDocument) { activeXDocument.write(scriptTag('')); activeXDocument.close(); var temp = activeXDocument.parentWindow.Object; activeXDocument = null; // avoid memory leak return temp; }; // Create object with fake `null` prototype: use iframe Object with cleared prototype var NullProtoObjectViaIFrame = function () { // Thrash, waste and sodomy: IE GC bug var iframe = documentCreateElement('iframe'); var JS = 'java' + SCRIPT + ':'; var iframeDocument; iframe.style.display = 'none'; html.appendChild(iframe); // https://github.com/zloirock/core-js/issues/475 iframe.src = String(JS); iframeDocument = iframe.contentWindow.document; iframeDocument.open(); iframeDocument.write(scriptTag('document.F=Object')); iframeDocument.close(); return iframeDocument.F; }; // Check for document.domain and active x support // No need to use active x approach when document.domain is not set // see https://github.com/es-shims/es5-shim/issues/150 // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 // avoid IE GC bug var activeXDocument; var NullProtoObject = function () { try { activeXDocument = new ActiveXObject('htmlfile'); } catch (error) { /* ignore */ } NullProtoObject = typeof document != 'undefined' ? document.domain && activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) // old IE : NullProtoObjectViaIFrame() : NullProtoObjectViaActiveX(activeXDocument); // WSH var length = enumBugKeys.length; while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; return NullProtoObject(); }; hiddenKeys[IE_PROTO] = true; // `Object.create` method // https://tc39.es/ecma262/#sec-object.create module.exports = Object.create || function create(O, Properties) { var result; if (O !== null) { EmptyConstructor[PROTOTYPE] = anObject(O); result = new EmptyConstructor(); EmptyConstructor[PROTOTYPE] = null; // add "__proto__" for Object.getPrototypeOf polyfill result[IE_PROTO] = O; } else result = NullProtoObject(); return Properties === undefined ? result : definePropertiesModule.f(result, Properties); }; /***/ }), /***/ 6048: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { var DESCRIPTORS = __webpack_require__(9781); var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(3353); var definePropertyModule = __webpack_require__(3070); var anObject = __webpack_require__(9670); var toIndexedObject = __webpack_require__(5656); var objectKeys = __webpack_require__(1956); // `Object.defineProperties` method // https://tc39.es/ecma262/#sec-object.defineproperties // eslint-disable-next-line es/no-object-defineproperties -- safe exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { anObject(O); var props = toIndexedObject(Properties); var keys = objectKeys(Properties); var length = keys.length; var index = 0; var key; while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); return O; }; /***/ }), /***/ 3070: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { var global = __webpack_require__(7854); var DESCRIPTORS = __webpack_require__(9781); var IE8_DOM_DEFINE = __webpack_require__(4664); var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(3353); var anObject = __webpack_require__(9670); var toPropertyKey = __webpack_require__(4948); var TypeError = global.TypeError; // eslint-disable-next-line es/no-object-defineproperty -- safe var $defineProperty = Object.defineProperty; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; var ENUMERABLE = 'enumerable'; var CONFIGURABLE = 'configurable'; var WRITABLE = 'writable'; // `Object.defineProperty` method // https://tc39.es/ecma262/#sec-object.defineproperty exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) { anObject(O); P = toPropertyKey(P); anObject(Attributes); if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { var current = $getOwnPropertyDescriptor(O, P); if (current && current[WRITABLE]) { O[P] = Attributes.value; Attributes = { configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE], enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], writable: false }; } } return $defineProperty(O, P, Attributes); } : $defineProperty : function defineProperty(O, P, Attributes) { anObject(O); P = toPropertyKey(P); anObject(Attributes); if (IE8_DOM_DEFINE) try { return $defineProperty(O, P, Attributes); } catch (error) { /* empty */ } if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); if ('value' in Attributes) O[P] = Attributes.value; return O; }; /***/ }), /***/ 1236: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { var DESCRIPTORS = __webpack_require__(9781); var call = __webpack_require__(6916); var propertyIsEnumerableModule = __webpack_require__(5296); var createPropertyDescriptor = __webpack_require__(9114); var toIndexedObject = __webpack_require__(5656); var toPropertyKey = __webpack_require__(4948); var hasOwn = __webpack_require__(2597); var IE8_DOM_DEFINE = __webpack_require__(4664); // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.getOwnPropertyDescriptor` method // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { O = toIndexedObject(O); P = toPropertyKey(P); if (IE8_DOM_DEFINE) try { return $getOwnPropertyDescriptor(O, P); } catch (error) { /* empty */ } if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); }; /***/ }), /***/ 8006: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { var internalObjectKeys = __webpack_require__(6324); var enumBugKeys = __webpack_require__(748); var hiddenKeys = enumBugKeys.concat('length', 'prototype'); // `Object.getOwnPropertyNames` method // https://tc39.es/ecma262/#sec-object.getownpropertynames // eslint-disable-next-line es/no-object-getownpropertynames -- safe exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { return internalObjectKeys(O, hiddenKeys); }; /***/ }), /***/ 5181: /***/ ((__unused_webpack_module, exports) => { // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe exports.f = Object.getOwnPropertySymbols; /***/ }), /***/ 9518: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var hasOwn = __webpack_require__(2597); var isCallable = __webpack_require__(614); var toObject = __webpack_require__(7908); var sharedKey = __webpack_require__(6200); var CORRECT_PROTOTYPE_GETTER = __webpack_require__(8544); var IE_PROTO = sharedKey('IE_PROTO'); var Object = global.Object; var ObjectPrototype = Object.prototype; // `Object.getPrototypeOf` method // https://tc39.es/ecma262/#sec-object.getprototypeof module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) { var object = toObject(O); if (hasOwn(object, IE_PROTO)) return object[IE_PROTO]; var constructor = object.constructor; if (isCallable(constructor) && object instanceof constructor) { return constructor.prototype; } return object instanceof Object ? ObjectPrototype : null; }; /***/ }), /***/ 7976: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var uncurryThis = __webpack_require__(1702); module.exports = uncurryThis({}.isPrototypeOf); /***/ }), /***/ 6324: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var uncurryThis = __webpack_require__(1702); var hasOwn = __webpack_require__(2597); var toIndexedObject = __webpack_require__(5656); var indexOf = __webpack_require__(1318).indexOf; var hiddenKeys = __webpack_require__(3501); var push = uncurryThis([].push); module.exports = function (object, names) { var O = toIndexedObject(object); var i = 0; var result = []; var key; for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key); // Don't enum bug & hidden keys while (names.length > i) if (hasOwn(O, key = names[i++])) { ~indexOf(result, key) || push(result, key); } return result; }; /***/ }), /***/ 1956: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var internalObjectKeys = __webpack_require__(6324); var enumBugKeys = __webpack_require__(748); // `Object.keys` method // https://tc39.es/ecma262/#sec-object.keys // eslint-disable-next-line es/no-object-keys -- safe module.exports = Object.keys || function keys(O) { return internalObjectKeys(O, enumBugKeys); }; /***/ }), /***/ 5296: /***/ ((__unused_webpack_module, exports) => { "use strict"; var $propertyIsEnumerable = {}.propertyIsEnumerable; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Nashorn ~ JDK8 bug var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); // `Object.prototype.propertyIsEnumerable` method implementation // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { var descriptor = getOwnPropertyDescriptor(this, V); return !!descriptor && descriptor.enumerable; } : $propertyIsEnumerable; /***/ }), /***/ 7674: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { /* eslint-disable no-proto -- safe */ var uncurryThis = __webpack_require__(1702); var anObject = __webpack_require__(9670); var aPossiblePrototype = __webpack_require__(6077); // `Object.setPrototypeOf` method // https://tc39.es/ecma262/#sec-object.setprototypeof // Works with __proto__ only. Old v8 can't work with null proto objects. // eslint-disable-next-line es/no-object-setprototypeof -- safe module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { var CORRECT_SETTER = false; var test = {}; var setter; try { // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set); setter(test, []); CORRECT_SETTER = test instanceof Array; } catch (error) { /* empty */ } return function setPrototypeOf(O, proto) { anObject(O); aPossiblePrototype(proto); if (CORRECT_SETTER) setter(O, proto); else O.__proto__ = proto; return O; }; }() : undefined); /***/ }), /***/ 2140: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var call = __webpack_require__(6916); var isCallable = __webpack_require__(614); var isObject = __webpack_require__(111); var TypeError = global.TypeError; // `OrdinaryToPrimitive` abstract operation // https://tc39.es/ecma262/#sec-ordinarytoprimitive module.exports = function (input, pref) { var fn, val; if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val; if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; throw TypeError("Can't convert object to primitive value"); }; /***/ }), /***/ 3887: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var getBuiltIn = __webpack_require__(5005); var uncurryThis = __webpack_require__(1702); var getOwnPropertyNamesModule = __webpack_require__(8006); var getOwnPropertySymbolsModule = __webpack_require__(5181); var anObject = __webpack_require__(9670); var concat = uncurryThis([].concat); // all object keys, includes non-enumerable and symbols module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { var keys = getOwnPropertyNamesModule.f(anObject(it)); var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys; }; /***/ }), /***/ 1320: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var isCallable = __webpack_require__(614); var hasOwn = __webpack_require__(2597); var createNonEnumerableProperty = __webpack_require__(8880); var setGlobal = __webpack_require__(3505); var inspectSource = __webpack_require__(2788); var InternalStateModule = __webpack_require__(9909); var CONFIGURABLE_FUNCTION_NAME = __webpack_require__(6530).CONFIGURABLE; var getInternalState = InternalStateModule.get; var enforceInternalState = InternalStateModule.enforce; var TEMPLATE = String(String).split('String'); (module.exports = function (O, key, value, options) { var unsafe = options ? !!options.unsafe : false; var simple = options ? !!options.enumerable : false; var noTargetGet = options ? !!options.noTargetGet : false; var name = options && options.name !== undefined ? options.name : key; var state; if (isCallable(value)) { if (String(name).slice(0, 7) === 'Symbol(') { name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']'; } if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { createNonEnumerableProperty(value, 'name', name); } state = enforceInternalState(value); if (!state.source) { state.source = TEMPLATE.join(typeof name == 'string' ? name : ''); } } if (O === global) { if (simple) O[key] = value; else setGlobal(key, value); return; } else if (!unsafe) { delete O[key]; } else if (!noTargetGet && O[key]) { simple = true; } if (simple) O[key] = value; else createNonEnumerableProperty(O, key, value); // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative })(Function.prototype, 'toString', function toString() { return isCallable(this) && getInternalState(this).source || inspectSource(this); }); /***/ }), /***/ 7651: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var call = __webpack_require__(6916); var anObject = __webpack_require__(9670); var isCallable = __webpack_require__(614); var classof = __webpack_require__(4326); var regexpExec = __webpack_require__(2261); var TypeError = global.TypeError; // `RegExpExec` abstract operation // https://tc39.es/ecma262/#sec-regexpexec module.exports = function (R, S) { var exec = R.exec; if (isCallable(exec)) { var result = call(exec, R, S); if (result !== null) anObject(result); return result; } if (classof(R) === 'RegExp') return call(regexpExec, R, S); throw TypeError('RegExp#exec called on incompatible receiver'); }; /***/ }), /***/ 2261: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */ /* eslint-disable regexp/no-useless-quantifier -- testing */ var call = __webpack_require__(6916); var uncurryThis = __webpack_require__(1702); var toString = __webpack_require__(1340); var regexpFlags = __webpack_require__(7066); var stickyHelpers = __webpack_require__(2999); var shared = __webpack_require__(2309); var create = __webpack_require__(30); var getInternalState = __webpack_require__(9909).get; var UNSUPPORTED_DOT_ALL = __webpack_require__(9441); var UNSUPPORTED_NCG = __webpack_require__(7168); var nativeReplace = shared('native-string-replace', String.prototype.replace); var nativeExec = RegExp.prototype.exec; var patchedExec = nativeExec; var charAt = uncurryThis(''.charAt); var indexOf = uncurryThis(''.indexOf); var replace = uncurryThis(''.replace); var stringSlice = uncurryThis(''.slice); var UPDATES_LAST_INDEX_WRONG = (function () { var re1 = /a/; var re2 = /b*/g; call(nativeExec, re1, 'a'); call(nativeExec, re2, 'a'); return re1.lastIndex !== 0 || re2.lastIndex !== 0; })(); var UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET; // nonparticipating capturing group, copied from es5-shim's String#split patch. var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG; if (PATCH) { patchedExec = function exec(string) { var re = this; var state = getInternalState(re); var str = toString(string); var raw = state.raw; var result, reCopy, lastIndex, match, i, object, group; if (raw) { raw.lastIndex = re.lastIndex; result = call(patchedExec, raw, str); re.lastIndex = raw.lastIndex; return result; } var groups = state.groups; var sticky = UNSUPPORTED_Y && re.sticky; var flags = call(regexpFlags, re); var source = re.source; var charsAdded = 0; var strCopy = str; if (sticky) { flags = replace(flags, 'y', ''); if (indexOf(flags, 'g') === -1) { flags += 'g'; } strCopy = stringSlice(str, re.lastIndex); // Support anchored sticky behavior. if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\n')) { source = '(?: ' + source + ')'; strCopy = ' ' + strCopy; charsAdded++; } // ^(? + rx + ) is needed, in combination with some str slicing, to // simulate the 'y' flag. reCopy = new RegExp('^(?:' + source + ')', flags); } if (NPCG_INCLUDED) { reCopy = new RegExp('^' + source + '$(?!\\s)', flags); } if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; match = call(nativeExec, sticky ? reCopy : re, strCopy); if (sticky) { if (match) { match.input = stringSlice(match.input, charsAdded); match[0] = stringSlice(match[0], charsAdded); match.index = re.lastIndex; re.lastIndex += match[0].length; } else re.lastIndex = 0; } else if (UPDATES_LAST_INDEX_WRONG && match) { re.lastIndex = re.global ? match.index + match[0].length : lastIndex; } if (NPCG_INCLUDED && match && match.length > 1) { // Fix browsers whose `exec` methods don't consistently return `undefined` // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ call(nativeReplace, match[0], reCopy, function () { for (i = 1; i < arguments.length - 2; i++) { if (arguments[i] === undefined) match[i] = undefined; } }); } if (match && groups) { match.groups = object = create(null); for (i = 0; i < groups.length; i++) { group = groups[i]; object[group[0]] = match[group[1]]; } } return match; }; } module.exports = patchedExec; /***/ }), /***/ 7066: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var anObject = __webpack_require__(9670); // `RegExp.prototype.flags` getter implementation // https://tc39.es/ecma262/#sec-get-regexp.prototype.flags module.exports = function () { var that = anObject(this); var result = ''; if (that.global) result += 'g'; if (that.ignoreCase) result += 'i'; if (that.multiline) result += 'm'; if (that.dotAll) result += 's'; if (that.unicode) result += 'u'; if (that.sticky) result += 'y'; return result; }; /***/ }), /***/ 2999: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var fails = __webpack_require__(7293); var global = __webpack_require__(7854); // babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError var $RegExp = global.RegExp; var UNSUPPORTED_Y = fails(function () { var re = $RegExp('a', 'y'); re.lastIndex = 2; return re.exec('abcd') != null; }); // UC Browser bug // https://github.com/zloirock/core-js/issues/1008 var MISSED_STICKY = UNSUPPORTED_Y || fails(function () { return !$RegExp('a', 'y').sticky; }); var BROKEN_CARET = UNSUPPORTED_Y || fails(function () { // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 var re = $RegExp('^r', 'gy'); re.lastIndex = 2; return re.exec('str') != null; }); module.exports = { BROKEN_CARET: BROKEN_CARET, MISSED_STICKY: MISSED_STICKY, UNSUPPORTED_Y: UNSUPPORTED_Y }; /***/ }), /***/ 9441: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var fails = __webpack_require__(7293); var global = __webpack_require__(7854); // babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError var $RegExp = global.RegExp; module.exports = fails(function () { var re = $RegExp('.', 's'); return !(re.dotAll && re.exec('\n') && re.flags === 's'); }); /***/ }), /***/ 7168: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var fails = __webpack_require__(7293); var global = __webpack_require__(7854); // babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError var $RegExp = global.RegExp; module.exports = fails(function () { var re = $RegExp('(?b)', 'g'); return re.exec('b').groups.a !== 'b' || 'b'.replace(re, '$c') !== 'bc'; }); /***/ }), /***/ 4488: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var TypeError = global.TypeError; // `RequireObjectCoercible` abstract operation // https://tc39.es/ecma262/#sec-requireobjectcoercible module.exports = function (it) { if (it == undefined) throw TypeError("Can't call method on " + it); return it; }; /***/ }), /***/ 3505: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); // eslint-disable-next-line es/no-object-defineproperty -- safe var defineProperty = Object.defineProperty; module.exports = function (key, value) { try { defineProperty(global, key, { value: value, configurable: true, writable: true }); } catch (error) { global[key] = value; } return value; }; /***/ }), /***/ 6340: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var getBuiltIn = __webpack_require__(5005); var definePropertyModule = __webpack_require__(3070); var wellKnownSymbol = __webpack_require__(5112); var DESCRIPTORS = __webpack_require__(9781); var SPECIES = wellKnownSymbol('species'); module.exports = function (CONSTRUCTOR_NAME) { var Constructor = getBuiltIn(CONSTRUCTOR_NAME); var defineProperty = definePropertyModule.f; if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { defineProperty(Constructor, SPECIES, { configurable: true, get: function () { return this; } }); } }; /***/ }), /***/ 6200: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var shared = __webpack_require__(2309); var uid = __webpack_require__(9711); var keys = shared('keys'); module.exports = function (key) { return keys[key] || (keys[key] = uid(key)); }; /***/ }), /***/ 5465: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var setGlobal = __webpack_require__(3505); var SHARED = '__core-js_shared__'; var store = global[SHARED] || setGlobal(SHARED, {}); module.exports = store; /***/ }), /***/ 2309: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var IS_PURE = __webpack_require__(1913); var store = __webpack_require__(5465); (module.exports = function (key, value) { return store[key] || (store[key] = value !== undefined ? value : {}); })('versions', []).push({ version: '3.20.2', mode: IS_PURE ? 'pure' : 'global', copyright: '© 2022 Denis Pushkarev (zloirock.ru)' }); /***/ }), /***/ 8710: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var uncurryThis = __webpack_require__(1702); var toIntegerOrInfinity = __webpack_require__(9303); var toString = __webpack_require__(1340); var requireObjectCoercible = __webpack_require__(4488); var charAt = uncurryThis(''.charAt); var charCodeAt = uncurryThis(''.charCodeAt); var stringSlice = uncurryThis(''.slice); var createMethod = function (CONVERT_TO_STRING) { return function ($this, pos) { var S = toString(requireObjectCoercible($this)); var position = toIntegerOrInfinity(pos); var size = S.length; var first, second; if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; first = charCodeAt(S, position); return first < 0xD800 || first > 0xDBFF || position + 1 === size || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF ? CONVERT_TO_STRING ? charAt(S, position) : first : CONVERT_TO_STRING ? stringSlice(S, position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; }; }; module.exports = { // `String.prototype.codePointAt` method // https://tc39.es/ecma262/#sec-string.prototype.codepointat codeAt: createMethod(false), // `String.prototype.at` method // https://github.com/mathiasbynens/String.prototype.at charAt: createMethod(true) }; /***/ }), /***/ 261: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var apply = __webpack_require__(2104); var bind = __webpack_require__(9974); var isCallable = __webpack_require__(614); var hasOwn = __webpack_require__(2597); var fails = __webpack_require__(7293); var html = __webpack_require__(490); var arraySlice = __webpack_require__(206); var createElement = __webpack_require__(317); var IS_IOS = __webpack_require__(6833); var IS_NODE = __webpack_require__(5268); var set = global.setImmediate; var clear = global.clearImmediate; var process = global.process; var Dispatch = global.Dispatch; var Function = global.Function; var MessageChannel = global.MessageChannel; var String = global.String; var counter = 0; var queue = {}; var ONREADYSTATECHANGE = 'onreadystatechange'; var location, defer, channel, port; try { // Deno throws a ReferenceError on `location` access without `--location` flag location = global.location; } catch (error) { /* empty */ } var run = function (id) { if (hasOwn(queue, id)) { var fn = queue[id]; delete queue[id]; fn(); } }; var runner = function (id) { return function () { run(id); }; }; var listener = function (event) { run(event.data); }; var post = function (id) { // old engines have not location.origin global.postMessage(String(id), location.protocol + '//' + location.host); }; // Node.js 0.9+ & IE10+ has setImmediate, otherwise: if (!set || !clear) { set = function setImmediate(fn) { var args = arraySlice(arguments, 1); queue[++counter] = function () { apply(isCallable(fn) ? fn : Function(fn), undefined, args); }; defer(counter); return counter; }; clear = function clearImmediate(id) { delete queue[id]; }; // Node.js 0.8- if (IS_NODE) { defer = function (id) { process.nextTick(runner(id)); }; // Sphere (JS game engine) Dispatch API } else if (Dispatch && Dispatch.now) { defer = function (id) { Dispatch.now(runner(id)); }; // Browsers with MessageChannel, includes WebWorkers // except iOS - https://github.com/zloirock/core-js/issues/624 } else if (MessageChannel && !IS_IOS) { channel = new MessageChannel(); port = channel.port2; channel.port1.onmessage = listener; defer = bind(port.postMessage, port); // Browsers with postMessage, skip WebWorkers // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' } else if ( global.addEventListener && isCallable(global.postMessage) && !global.importScripts && location && location.protocol !== 'file:' && !fails(post) ) { defer = post; global.addEventListener('message', listener, false); // IE8- } else if (ONREADYSTATECHANGE in createElement('script')) { defer = function (id) { html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { html.removeChild(this); run(id); }; }; // Rest old browsers } else { defer = function (id) { setTimeout(runner(id), 0); }; } } module.exports = { set: set, clear: clear }; /***/ }), /***/ 1400: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var toIntegerOrInfinity = __webpack_require__(9303); var max = Math.max; var min = Math.min; // Helper for a popular repeating case of the spec: // Let integer be ? ToInteger(index). // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). module.exports = function (index, length) { var integer = toIntegerOrInfinity(index); return integer < 0 ? max(integer + length, 0) : min(integer, length); }; /***/ }), /***/ 5656: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { // toObject with fallback for non-array-like ES3 strings var IndexedObject = __webpack_require__(8361); var requireObjectCoercible = __webpack_require__(4488); module.exports = function (it) { return IndexedObject(requireObjectCoercible(it)); }; /***/ }), /***/ 9303: /***/ ((module) => { var ceil = Math.ceil; var floor = Math.floor; // `ToIntegerOrInfinity` abstract operation // https://tc39.es/ecma262/#sec-tointegerorinfinity module.exports = function (argument) { var number = +argument; // eslint-disable-next-line no-self-compare -- safe return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number); }; /***/ }), /***/ 7466: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var toIntegerOrInfinity = __webpack_require__(9303); var min = Math.min; // `ToLength` abstract operation // https://tc39.es/ecma262/#sec-tolength module.exports = function (argument) { return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 }; /***/ }), /***/ 7908: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var requireObjectCoercible = __webpack_require__(4488); var Object = global.Object; // `ToObject` abstract operation // https://tc39.es/ecma262/#sec-toobject module.exports = function (argument) { return Object(requireObjectCoercible(argument)); }; /***/ }), /***/ 4590: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var toPositiveInteger = __webpack_require__(3002); var RangeError = global.RangeError; module.exports = function (it, BYTES) { var offset = toPositiveInteger(it); if (offset % BYTES) throw RangeError('Wrong offset'); return offset; }; /***/ }), /***/ 3002: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var toIntegerOrInfinity = __webpack_require__(9303); var RangeError = global.RangeError; module.exports = function (it) { var result = toIntegerOrInfinity(it); if (result < 0) throw RangeError("The argument can't be less than 0"); return result; }; /***/ }), /***/ 7593: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var call = __webpack_require__(6916); var isObject = __webpack_require__(111); var isSymbol = __webpack_require__(2190); var getMethod = __webpack_require__(8173); var ordinaryToPrimitive = __webpack_require__(2140); var wellKnownSymbol = __webpack_require__(5112); var TypeError = global.TypeError; var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); // `ToPrimitive` abstract operation // https://tc39.es/ecma262/#sec-toprimitive module.exports = function (input, pref) { if (!isObject(input) || isSymbol(input)) return input; var exoticToPrim = getMethod(input, TO_PRIMITIVE); var result; if (exoticToPrim) { if (pref === undefined) pref = 'default'; result = call(exoticToPrim, input, pref); if (!isObject(result) || isSymbol(result)) return result; throw TypeError("Can't convert object to primitive value"); } if (pref === undefined) pref = 'number'; return ordinaryToPrimitive(input, pref); }; /***/ }), /***/ 4948: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var toPrimitive = __webpack_require__(7593); var isSymbol = __webpack_require__(2190); // `ToPropertyKey` abstract operation // https://tc39.es/ecma262/#sec-topropertykey module.exports = function (argument) { var key = toPrimitive(argument, 'string'); return isSymbol(key) ? key : key + ''; }; /***/ }), /***/ 1694: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var wellKnownSymbol = __webpack_require__(5112); var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var test = {}; test[TO_STRING_TAG] = 'z'; module.exports = String(test) === '[object z]'; /***/ }), /***/ 1340: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var classof = __webpack_require__(648); var String = global.String; module.exports = function (argument) { if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string'); return String(argument); }; /***/ }), /***/ 6330: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var String = global.String; module.exports = function (argument) { try { return String(argument); } catch (error) { return 'Object'; } }; /***/ }), /***/ 9711: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var uncurryThis = __webpack_require__(1702); var id = 0; var postfix = Math.random(); var toString = uncurryThis(1.0.toString); module.exports = function (key) { return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36); }; /***/ }), /***/ 3307: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { /* eslint-disable es/no-symbol -- required for testing */ var NATIVE_SYMBOL = __webpack_require__(133); module.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == 'symbol'; /***/ }), /***/ 3353: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var DESCRIPTORS = __webpack_require__(9781); var fails = __webpack_require__(7293); // V8 ~ Chrome 36- // https://bugs.chromium.org/p/v8/issues/detail?id=3334 module.exports = DESCRIPTORS && fails(function () { // eslint-disable-next-line es/no-object-defineproperty -- required for testing return Object.defineProperty(function () { /* empty */ }, 'prototype', { value: 42, writable: false }).prototype != 42; }); /***/ }), /***/ 5112: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(7854); var shared = __webpack_require__(2309); var hasOwn = __webpack_require__(2597); var uid = __webpack_require__(9711); var NATIVE_SYMBOL = __webpack_require__(133); var USE_SYMBOL_AS_UID = __webpack_require__(3307); var WellKnownSymbolsStore = shared('wks'); var Symbol = global.Symbol; var symbolFor = Symbol && Symbol['for']; var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; module.exports = function (name) { if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) { var description = 'Symbol.' + name; if (NATIVE_SYMBOL && hasOwn(Symbol, name)) { WellKnownSymbolsStore[name] = Symbol[name]; } else if (USE_SYMBOL_AS_UID && symbolFor) { WellKnownSymbolsStore[name] = symbolFor(description); } else { WellKnownSymbolsStore[name] = createWellKnownSymbol(description); } } return WellKnownSymbolsStore[name]; }; /***/ }), /***/ 5827: /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var $ = __webpack_require__(2109); var $reduce = __webpack_require__(3671).left; var arrayMethodIsStrict = __webpack_require__(9341); var CHROME_VERSION = __webpack_require__(7392); var IS_NODE = __webpack_require__(5268); var STRICT_METHOD = arrayMethodIsStrict('reduce'); // Chrome 80-82 has a critical bug // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; // `Array.prototype.reduce` method // https://tc39.es/ecma262/#sec-array.prototype.reduce $({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, { reduce: function reduce(callbackfn /* , initialValue */) { var length = arguments.length; return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined); } }); /***/ }), /***/ 4603: /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { var DESCRIPTORS = __webpack_require__(9781); var global = __webpack_require__(7854); var uncurryThis = __webpack_require__(1702); var isForced = __webpack_require__(4705); var inheritIfRequired = __webpack_require__(9587); var createNonEnumerableProperty = __webpack_require__(8880); var defineProperty = __webpack_require__(3070).f; var getOwnPropertyNames = __webpack_require__(8006).f; var isPrototypeOf = __webpack_require__(7976); var isRegExp = __webpack_require__(7850); var toString = __webpack_require__(1340); var regExpFlags = __webpack_require__(7066); var stickyHelpers = __webpack_require__(2999); var redefine = __webpack_require__(1320); var fails = __webpack_require__(7293); var hasOwn = __webpack_require__(2597); var enforceInternalState = __webpack_require__(9909).enforce; var setSpecies = __webpack_require__(6340); var wellKnownSymbol = __webpack_require__(5112); var UNSUPPORTED_DOT_ALL = __webpack_require__(9441); var UNSUPPORTED_NCG = __webpack_require__(7168); var MATCH = wellKnownSymbol('match'); var NativeRegExp = global.RegExp; var RegExpPrototype = NativeRegExp.prototype; var SyntaxError = global.SyntaxError; var getFlags = uncurryThis(regExpFlags); var exec = uncurryThis(RegExpPrototype.exec); var charAt = uncurryThis(''.charAt); var replace = uncurryThis(''.replace); var stringIndexOf = uncurryThis(''.indexOf); var stringSlice = uncurryThis(''.slice); // TODO: Use only propper RegExpIdentifierName var IS_NCG = /^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/; var re1 = /a/g; var re2 = /a/g; // "new" should create a new object, old webkit bug var CORRECT_NEW = new NativeRegExp(re1) !== re1; var MISSED_STICKY = stickyHelpers.MISSED_STICKY; var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y; var BASE_FORCED = DESCRIPTORS && (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () { re2[MATCH] = false; // RegExp constructor can alter flags and IsRegExp works correct with @@match return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i'; })); var handleDotAll = function (string) { var length = string.length; var index = 0; var result = ''; var brackets = false; var chr; for (; index <= length; index++) { chr = charAt(string, index); if (chr === '\\') { result += chr + charAt(string, ++index); continue; } if (!brackets && chr === '.') { result += '[\\s\\S]'; } else { if (chr === '[') { brackets = true; } else if (chr === ']') { brackets = false; } result += chr; } } return result; }; var handleNCG = function (string) { var length = string.length; var index = 0; var result = ''; var named = []; var names = {}; var brackets = false; var ncg = false; var groupid = 0; var groupname = ''; var chr; for (; index <= length; index++) { chr = charAt(string, index); if (chr === '\\') { chr = chr + charAt(string, ++index); } else if (chr === ']') { brackets = false; } else if (!brackets) switch (true) { case chr === '[': brackets = true; break; case chr === '(': if (exec(IS_NCG, stringSlice(string, index + 1))) { index += 2; ncg = true; } result += chr; groupid++; continue; case chr === '>' && ncg: if (groupname === '' || hasOwn(names, groupname)) { throw new SyntaxError('Invalid capture group name'); } names[groupname] = true; named[named.length] = [groupname, groupid]; ncg = false; groupname = ''; continue; } if (ncg) groupname += chr; else result += chr; } return [result, named]; }; // `RegExp` constructor // https://tc39.es/ecma262/#sec-regexp-constructor if (isForced('RegExp', BASE_FORCED)) { var RegExpWrapper = function RegExp(pattern, flags) { var thisIsRegExp = isPrototypeOf(RegExpPrototype, this); var patternIsRegExp = isRegExp(pattern); var flagsAreUndefined = flags === undefined; var groups = []; var rawPattern = pattern; var rawFlags, dotAll, sticky, handled, result, state; if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) { return pattern; } if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) { pattern = pattern.source; if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags(rawPattern); } pattern = pattern === undefined ? '' : toString(pattern); flags = flags === undefined ? '' : toString(flags); rawPattern = pattern; if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) { dotAll = !!flags && stringIndexOf(flags, 's') > -1; if (dotAll) flags = replace(flags, /s/g, ''); } rawFlags = flags; if (MISSED_STICKY && 'sticky' in re1) { sticky = !!flags && stringIndexOf(flags, 'y') > -1; if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, ''); } if (UNSUPPORTED_NCG) { handled = handleNCG(pattern); pattern = handled[0]; groups = handled[1]; } result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper); if (dotAll || sticky || groups.length) { state = enforceInternalState(result); if (dotAll) { state.dotAll = true; state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags); } if (sticky) state.sticky = true; if (groups.length) state.groups = groups; } if (pattern !== rawPattern) try { // fails in old engines, but we have no alternatives for unsupported regex syntax createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern); } catch (error) { /* empty */ } return result; }; var proxy = function (key) { key in RegExpWrapper || defineProperty(RegExpWrapper, key, { configurable: true, get: function () { return NativeRegExp[key]; }, set: function (it) { NativeRegExp[key] = it; } }); }; for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) { proxy(keys[index++]); } RegExpPrototype.constructor = RegExpWrapper; RegExpWrapper.prototype = RegExpPrototype; redefine(global, 'RegExp', RegExpWrapper); } // https://tc39.es/ecma262/#sec-get-regexp-@@species setSpecies('RegExp'); /***/ }), /***/ 4916: /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var $ = __webpack_require__(2109); var exec = __webpack_require__(2261); // `RegExp.prototype.exec` method // https://tc39.es/ecma262/#sec-regexp.prototype.exec $({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { exec: exec }); /***/ }), /***/ 2087: /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { var DESCRIPTORS = __webpack_require__(9781); var objectDefinePropertyModule = __webpack_require__(3070); var regExpFlags = __webpack_require__(7066); var fails = __webpack_require__(7293); var RegExpPrototype = RegExp.prototype; var FORCED = DESCRIPTORS && fails(function () { // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe return Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call({ dotAll: true, sticky: true }) !== 'sy'; }); // `RegExp.prototype.flags` getter // https://tc39.es/ecma262/#sec-get-regexp.prototype.flags if (FORCED) objectDefinePropertyModule.f(RegExpPrototype, 'flags', { configurable: true, get: regExpFlags }); /***/ }), /***/ 5306: /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var apply = __webpack_require__(2104); var call = __webpack_require__(6916); var uncurryThis = __webpack_require__(1702); var fixRegExpWellKnownSymbolLogic = __webpack_require__(7007); var fails = __webpack_require__(7293); var anObject = __webpack_require__(9670); var isCallable = __webpack_require__(614); var toIntegerOrInfinity = __webpack_require__(9303); var toLength = __webpack_require__(7466); var toString = __webpack_require__(1340); var requireObjectCoercible = __webpack_require__(4488); var advanceStringIndex = __webpack_require__(1530); var getMethod = __webpack_require__(8173); var getSubstitution = __webpack_require__(647); var regExpExec = __webpack_require__(7651); var wellKnownSymbol = __webpack_require__(5112); var REPLACE = wellKnownSymbol('replace'); var max = Math.max; var min = Math.min; var concat = uncurryThis([].concat); var push = uncurryThis([].push); var stringIndexOf = uncurryThis(''.indexOf); var stringSlice = uncurryThis(''.slice); var maybeToString = function (it) { return it === undefined ? it : String(it); }; // IE <= 11 replaces $0 with the whole match, as if it was $& // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 var REPLACE_KEEPS_$0 = (function () { // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing return 'a'.replace(/./, '$0') === '$0'; })(); // Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { if (/./[REPLACE]) { return /./[REPLACE]('a', '$0') === ''; } return false; })(); var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { var re = /./; re.exec = function () { var result = []; result.groups = { a: '7' }; return result; }; // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive return ''.replace(re, '$') !== '7'; }); // @@replace logic fixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) { var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; return [ // `String.prototype.replace` method // https://tc39.es/ecma262/#sec-string.prototype.replace function replace(searchValue, replaceValue) { var O = requireObjectCoercible(this); var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE); return replacer ? call(replacer, searchValue, O, replaceValue) : call(nativeReplace, toString(O), searchValue, replaceValue); }, // `RegExp.prototype[@@replace]` method // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace function (string, replaceValue) { var rx = anObject(this); var S = toString(string); if ( typeof replaceValue == 'string' && stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 && stringIndexOf(replaceValue, '$<') === -1 ) { var res = maybeCallNative(nativeReplace, rx, S, replaceValue); if (res.done) return res.value; } var functionalReplace = isCallable(replaceValue); if (!functionalReplace) replaceValue = toString(replaceValue); var global = rx.global; if (global) { var fullUnicode = rx.unicode; rx.lastIndex = 0; } var results = []; while (true) { var result = regExpExec(rx, S); if (result === null) break; push(results, result); if (!global) break; var matchStr = toString(result[0]); if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); } var accumulatedResult = ''; var nextSourcePosition = 0; for (var i = 0; i < results.length; i++) { result = results[i]; var matched = toString(result[0]); var position = max(min(toIntegerOrInfinity(result.index), S.length), 0); var captures = []; // NOTE: This is equivalent to // captures = result.slice(1).map(maybeToString) // but for some reason `nativeSlice.call(result, 1, result.length)` (called in // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j])); var namedCaptures = result.groups; if (functionalReplace) { var replacerArgs = concat([matched], captures, position, S); if (namedCaptures !== undefined) push(replacerArgs, namedCaptures); var replacement = toString(apply(replaceValue, undefined, replacerArgs)); } else { replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); } if (position >= nextSourcePosition) { accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement; nextSourcePosition = position + matched.length; } } return accumulatedResult + stringSlice(S, nextSourcePosition); } ]; }, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE); /***/ }), /***/ 3462: /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var global = __webpack_require__(7854); var call = __webpack_require__(6916); var ArrayBufferViewCore = __webpack_require__(260); var lengthOfArrayLike = __webpack_require__(6244); var toOffset = __webpack_require__(4590); var toIndexedObject = __webpack_require__(7908); var fails = __webpack_require__(7293); var RangeError = global.RangeError; var Int8Array = global.Int8Array; var Int8ArrayPrototype = Int8Array && Int8Array.prototype; var $set = Int8ArrayPrototype && Int8ArrayPrototype.set; var aTypedArray = ArrayBufferViewCore.aTypedArray; var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; var WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS = !fails(function () { // eslint-disable-next-line es/no-typed-arrays -- required for testing var array = new Uint8ClampedArray(2); call($set, array, { length: 1, 0: 3 }, 1); return array[1] !== 3; }); // https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other var TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () { var array = new Int8Array(2); array.set(1); array.set('2', 1); return array[0] !== 0 || array[1] !== 2; }); // `%TypedArray%.prototype.set` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.set exportTypedArrayMethod('set', function set(arrayLike /* , offset */) { aTypedArray(this); var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1); var src = toIndexedObject(arrayLike); if (WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset); var length = this.length; var len = lengthOfArrayLike(src); var index = 0; if (len + offset > length) throw RangeError('Wrong length'); while (index < len) this[offset + index] = src[index++]; }, !WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG); /***/ }), /***/ 4633: /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { var $ = __webpack_require__(2109); var global = __webpack_require__(7854); var task = __webpack_require__(261); var FORCED = !global.setImmediate || !global.clearImmediate; // http://w3c.github.io/setImmediate/ $({ global: true, bind: true, enumerable: true, forced: FORCED }, { // `setImmediate` method // http://w3c.github.io/setImmediate/#si-setImmediate setImmediate: task.set, // `clearImmediate` method // http://w3c.github.io/setImmediate/#si-clearImmediate clearImmediate: task.clear }); /***/ }) /******/ }); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/global */ /******/ (() => { /******/ __webpack_require__.g = (function() { /******/ if (typeof globalThis === 'object') return globalThis; /******/ try { /******/ return this || new Function('return this')(); /******/ } catch (e) { /******/ if (typeof window === 'object') return window; /******/ } /******/ })(); /******/ })(); /******/ /************************************************************************/ /******/ /******/ // startup /******/ // Load entry module and return exports /******/ // This entry module is referenced by other modules so it can't be inlined /******/ var __webpack_exports__ = __webpack_require__(5579); /******/ /******/ })() ;