From e045a91416f61b3cf97f56ae2d203ccb2851eb2e Mon Sep 17 00:00:00 2001 From: lem85930 Date: Tue, 25 Jul 2023 20:23:38 +0800 Subject: [PATCH] added openjs --- JN/EXT/OPENJS/README.md | 34 + JN/EXT/OPENJS/open/README.md | 9 + JN/EXT/OPENJS/{ => open}/alist_open.js | 0 JN/EXT/OPENJS/open/app.js | 8 + JN/EXT/OPENJS/open/build.js | 61 + JN/EXT/OPENJS/open/config_open.json | 70 + JN/EXT/OPENJS/{ => open}/czzy_open.js | 0 JN/EXT/OPENJS/{ => open}/duboku_open.js | 330 +-- JN/EXT/OPENJS/{ => open}/ikanbot_open.js | 406 +-- JN/EXT/OPENJS/{ => open}/kkys_open.js | 728 +++--- JN/EXT/OPENJS/{ => open}/kunyu77_open.js | 682 ++--- JN/EXT/OPENJS/open/lib/cat.js | 1 + JN/EXT/OPENJS/open/lib/similarity.js | 47 + JN/EXT/OPENJS/{ => open}/nivod_open.js | 0 JN/EXT/OPENJS/open/package-lock.json | 342 +++ JN/EXT/OPENJS/open/package.json | 21 + JN/EXT/OPENJS/open/test.js | 9 + JN/EXT/OPENJS/open/testAlist.js | 72 + JN/EXT/OPENJS/open/testVideo.js | 51 + JN/EXT/OPENJS/open/wrapper/index.js | 266 ++ JN/EXT/OPENJS/sniffer/README.md | 11 + JN/EXT/OPENJS/sniffer/config.html | 43 + JN/EXT/OPENJS/sniffer/config.js | 8 + JN/EXT/OPENJS/sniffer/index.js | 182 ++ JN/EXT/OPENJS/sniffer/jquery.min.js | 2 + JN/EXT/OPENJS/sniffer/package-lock.json | 2893 ++++++++++++++++++++++ JN/EXT/OPENJS/sniffer/package.json | 24 + 27 files changed, 5227 insertions(+), 1073 deletions(-) create mode 100644 JN/EXT/OPENJS/README.md create mode 100644 JN/EXT/OPENJS/open/README.md rename JN/EXT/OPENJS/{ => open}/alist_open.js (100%) create mode 100644 JN/EXT/OPENJS/open/app.js create mode 100644 JN/EXT/OPENJS/open/build.js create mode 100644 JN/EXT/OPENJS/open/config_open.json rename JN/EXT/OPENJS/{ => open}/czzy_open.js (100%) rename JN/EXT/OPENJS/{ => open}/duboku_open.js (99%) rename JN/EXT/OPENJS/{ => open}/ikanbot_open.js (96%) rename JN/EXT/OPENJS/{ => open}/kkys_open.js (96%) rename JN/EXT/OPENJS/{ => open}/kunyu77_open.js (96%) create mode 100644 JN/EXT/OPENJS/open/lib/cat.js create mode 100644 JN/EXT/OPENJS/open/lib/similarity.js rename JN/EXT/OPENJS/{ => open}/nivod_open.js (100%) create mode 100644 JN/EXT/OPENJS/open/package-lock.json create mode 100644 JN/EXT/OPENJS/open/package.json create mode 100644 JN/EXT/OPENJS/open/test.js create mode 100644 JN/EXT/OPENJS/open/testAlist.js create mode 100644 JN/EXT/OPENJS/open/testVideo.js create mode 100644 JN/EXT/OPENJS/open/wrapper/index.js create mode 100644 JN/EXT/OPENJS/sniffer/README.md create mode 100644 JN/EXT/OPENJS/sniffer/config.html create mode 100644 JN/EXT/OPENJS/sniffer/config.js create mode 100644 JN/EXT/OPENJS/sniffer/index.js create mode 100644 JN/EXT/OPENJS/sniffer/jquery.min.js create mode 100644 JN/EXT/OPENJS/sniffer/package-lock.json create mode 100644 JN/EXT/OPENJS/sniffer/package.json diff --git a/JN/EXT/OPENJS/README.md b/JN/EXT/OPENJS/README.md new file mode 100644 index 00000000..2abff2ef --- /dev/null +++ b/JN/EXT/OPENJS/README.md @@ -0,0 +1,34 @@ +# CatVodOpen +Open version of catvod. + +[🚀TG](https://t.me/catvodapp_offical) + +### **Notice** + +The open version was originally planned to start in december of last year, but it was delayed due to other matters. So the open version is mainly based on the december version from last year, but will include some bug fixes and core feature merges. + +Not being maintained and uncertain whether they will be updated. + +**Those who need it can download and use it, and there is no need to provide feedback on any issues.** + +### **Limits** + +- Only local `assets://` config is supported, and network config is not available. +- Only video&cloud disk module. +- Not supporting sniffing. +- Basic JS interface support. +- No builtin maccms api support. +- etc. + +### **Download** +[Release](https://github.com/catvod/CatVodOpen/releases) + +- Windows release only test on `windows11`. + + - Builtin config `data\flutter_assets\asset\js\config_open.json` +- MacOS only test on `Big Sur` and `Monterey`. + + - Builtin config `*.app/Contents/Frameworks/App.framework/Resources/flutter_assets/asset/js/config_open.json` +- iOS only test on `16.0+`. + + - Builtin config `*.ipa/Payload/Runner.app/Frameworks/App.framework/flutter_assets/asset/js/config_open.json` diff --git a/JN/EXT/OPENJS/open/README.md b/JN/EXT/OPENJS/open/README.md new file mode 100644 index 00000000..3abae75f --- /dev/null +++ b/JN/EXT/OPENJS/open/README.md @@ -0,0 +1,9 @@ +## Debug with any js debugger. + +`npm install` + +`node test.js` + +`node build.js` + +**Don't import `wrapper\index.js` direct.** diff --git a/JN/EXT/OPENJS/alist_open.js b/JN/EXT/OPENJS/open/alist_open.js similarity index 100% rename from JN/EXT/OPENJS/alist_open.js rename to JN/EXT/OPENJS/open/alist_open.js diff --git a/JN/EXT/OPENJS/open/app.js b/JN/EXT/OPENJS/open/app.js new file mode 100644 index 00000000..32165447 --- /dev/null +++ b/JN/EXT/OPENJS/open/app.js @@ -0,0 +1,8 @@ +function __jsEvalReturn() { + return { + isVideoFormat: function (url) { + return !0; + }, + }; +} +export { __jsEvalReturn }; diff --git a/JN/EXT/OPENJS/open/build.js b/JN/EXT/OPENJS/open/build.js new file mode 100644 index 00000000..e54ab65f --- /dev/null +++ b/JN/EXT/OPENJS/open/build.js @@ -0,0 +1,61 @@ +import fs from 'node:fs'; +import path from 'path'; +import uglifyjs from 'uglify-js'; + +const copySpider = ['app', 'kunyu77_open', 'alist_open']; + +const root = process.cwd(); + +const src = path.join(root); +const out = path.join(root, 'dist'); + +function minify(s, d) { + var jsContent = fs.readFileSync(s).toString(); + jsContent = jsContent.replace('./lib/cat.js', 'assets://js/lib/cat.js'); + jsContent = jsContent.replace('./cat.js', 'assets://js/lib/cat.js'); + jsContent = uglifyjs.minify(jsContent, { + mangle: false, + }); + fs.writeFileSync(d, jsContent.code); +} + +function listAllFiles(dirPath, arrayOfFiles) { + var files = fs.readdirSync(dirPath); + + arrayOfFiles = arrayOfFiles || []; + + files.forEach(function (file) { + if (fs.statSync(dirPath + '/' + file).isDirectory()) { + arrayOfFiles = listAllFiles(dirPath + '/' + file, arrayOfFiles); + } else { + arrayOfFiles.push(path.join(dirPath, '/', file)); + } + }); + + return arrayOfFiles; +} + +function src2Out() { + if (fs.existsSync(out)) fs.rmSync(out, { recursive: true, force: true }); + + fs.mkdirSync(out, { recursive: true }); + const libSrc = path.join(src, 'lib'); + const libOut = path.join(out, 'lib'); + fs.mkdirSync(libOut, { recursive: true }); + const libs = listAllFiles(libSrc); + for (let index = 0; index < libs.length; index++) { + const element = libs[index]; + const relative = path.relative(libSrc, element); + minify(element, path.join(libOut, relative)); + } + + for (const sp of copySpider) { + minify(path.join(src, sp + '.js'), path.join(out, sp + '.js')); + } +} + +src2Out(); + +fs.copyFileSync(path.join(src, 'config_open.json'), path.join(out, 'config_open.json')); + +console.log('done'); diff --git a/JN/EXT/OPENJS/open/config_open.json b/JN/EXT/OPENJS/open/config_open.json new file mode 100644 index 00000000..3a46961e --- /dev/null +++ b/JN/EXT/OPENJS/open/config_open.json @@ -0,0 +1,70 @@ +{ + "video": { + "sites": [ + { + "key": "kunyu77", + "name": "琨娱七七", + "type": 3, + "api": "assets://js/kunyu77_open.js" + } + ] + }, + "pan": { + "sites": [ + { + "key": "alist", + "name": "Alist", + "type": 40, + "api": "assets://js/alist_open.js", + "ext": [ + { + "name": "🙋丫仙女", + "server": "http://alist.xiaoya.pro/", + "startPage": "/", + "showAll": false, + "search": true, + "headers": { + "Authorization": "" + }, + "params": { + "/abc": { + "password": "123" + }, + "/abc/abc": { + "password": "123" + } + } + }, + { + "name": "🐋一只鱼", + "server": "https://alist.youte.ml" + }, + { + "name": "🌊七米蓝", + "server": "https://al.chirmyram.com" + }, + { + "name": "🐉神族九帝", + "server": "https://alist.shenzjd.com" + }, + { + "name": "☃️姬路白雪", + "server": "https://pan.jlbx.xyz" + }, + { + "name": "✨星梦", + "server": "https://pan.bashroot.top" + }, + { + "name": "💢repl", + "server": "https://ali.liucn.repl.co" + }, + { + "name": "💦讯维云盘", + "server": "https://pan.xwbeta.com" + } + ] + } + ] + } +} diff --git a/JN/EXT/OPENJS/czzy_open.js b/JN/EXT/OPENJS/open/czzy_open.js similarity index 100% rename from JN/EXT/OPENJS/czzy_open.js rename to JN/EXT/OPENJS/open/czzy_open.js diff --git a/JN/EXT/OPENJS/duboku_open.js b/JN/EXT/OPENJS/open/duboku_open.js similarity index 99% rename from JN/EXT/OPENJS/duboku_open.js rename to JN/EXT/OPENJS/open/duboku_open.js index ac1d0d7f..0ef3e977 100644 --- a/JN/EXT/OPENJS/duboku_open.js +++ b/JN/EXT/OPENJS/open/duboku_open.js @@ -1,166 +1,166 @@ -import { Crypto, load, _, jinja2 } from './lib/cat.js'; - -let key = 'duboku'; -let url = 'https://u.duboku.io'; -let siteKey = ''; -let siteType = 0; - -const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1'; - -async function request(reqUrl, agentSp) { - let res = await req(reqUrl, { - method: 'get', - headers: { - 'User-Agent': agentSp || UA, - 'Referer': url - }, - }); - return res.content; -} - -// cfg = {skey: siteKey, ext: extend} -async function init(cfg) { - siteKey = cfg.skey; - siteType = cfg.stype; -} - -async function home(filter) { - const html = await request(url); - const $ = load(html); - const class_parse = $('ul.nav-list > li > a[href*=vodtype]'); - let classes = []; - classes = _.map(class_parse, (cls) => { - let typeId = cls.attribs['href']; - typeId = typeId.substring(typeId.lastIndexOf('/') + 1).replace('.html',''); - return { - type_id: typeId, - type_name: cls.children[0].data, - }; - }); - let filterObj = { - "2":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"2"},{"n":"陆剧","v":"13"},{"n":"日韩剧","v":"15"},{"n":"短剧","v":"21"},{"n":"台泰剧","v":"14"},{"n":"港剧","v":"20"}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"内地"},{"n":"韩国","v":"韩国"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"美国","v":"美国"},{"n":"英国","v":"英国"},{"n":"巴西","v":"巴西"},{"n":"泰国","v":"泰国"},{"n":"法国","v":"法国"},{"n":"日本","v":"日本"},{"n":"荷兰","v":"荷兰"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"韩语","v":"韩语"},{"n":"泰语","v":"泰语"},{"n":"法语","v":"法语"},{"n":"日语","v":"日语"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], - "3":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"真人秀","v":"真人秀"},{"n":"选秀","v":"选秀"},{"n":"竞演","v":"竞演"},{"n":"情感","v":"情感"},{"n":"访谈","v":"访谈"},{"n":"播报","v":"播报"},{"n":"旅游","v":"旅游"},{"n":"音乐","v":"音乐"},{"n":"美食","v":"美食"},{"n":"纪实","v":"纪实"},{"n":"曲艺","v":"曲艺"},{"n":"生活","v":"生活"},{"n":"游戏互动","v":"游戏互动"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"内地"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"韩国","v":"韩国"},{"n":"美国","v":"美国"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], - "4":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"玄幻","v":"玄幻"},{"n":"武侠","v":"武侠"},{"n":"情感","v":"情感"},{"n":"科幻","v":"科幻"},{"n":"热血","v":"热血"},{"n":"推理","v":"推理"},{"n":"搞笑","v":"搞笑"},{"n":"冒险","v":"冒险"},{"n":"萝莉","v":"萝莉"},{"n":"校园","v":"校园"},{"n":"动作","v":"动作"},{"n":"机战","v":"机战"},{"n":"运动","v":"运动"},{"n":"战争","v":"战争"},{"n":"少年","v":"少年"},{"n":"少女","v":"少女"},{"n":"社会","v":"社会"},{"n":"亲子","v":"亲子"},{"n":"益智","v":"益智"},{"n":"励志","v":"励志"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"国产","v":"国产"},{"n":"日本","v":"日本"},{"n":"美国","v":"美国"},{"n":"法国","v":"法国"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], - "13":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], - "15":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"韩国","v":"韩国"},{"n":"日本","v":"日本"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], - "21":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], - "14":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"台湾","v":"台湾"},{"n":"泰国","v":"泰国"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], - "20":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}] - }; - - return JSON.stringify({ - class: classes, - filters: filterObj, - }); -} - -async function homeVod() { - const link = url + '/vodshow/2--hits---------.html'; - const html = await request(link); - const $ = load(html); - const items = $('div.myui-panel_bd > ul.myui-vodlist > li'); - let videos = _.map(items, (item) => { - const it = $(item).find('a:first')[0]; - const remarks = $($(item).find('span.pic-text')[0]).text().trim(); - return { - vod_id: it.attribs.href.replace(/.*?\/voddetail\/(.*).html/g, '$1'), - vod_name: it.attribs.title, - vod_pic: it.attribs['data-original'], - vod_remarks: remarks || '', - }; - }); - return JSON.stringify({ - list: videos, - }); -} - -async function category(tid, pg, filter, extend) { - if (pg <= 0) pg = 1; - - const link = url + '/vodshow/' + (extend.CateId || tid) + '-'+(extend.area || '')+'-'+(extend.by || 'time')+'-'+(extend.class || '')+'-'+(extend.lang || '')+'-'+(extend.letter || '')+'---' + (`${pg}`) + '---'+(extend.year || '')+'.html'; - const html = await request(link); - const $ = load(html); - const items = $('div.myui-panel_bd > ul.myui-vodlist > li'); - let videos = _.map(items, (item) => { - const it = $(item).find('a:first')[0]; - const remarks = $($(item).find('span.pic-text')[0]).text().trim(); - return { - vod_id: it.attribs.href.replace(/.*?\/voddetail\/(.*).html/g, '$1'), - vod_name: it.attribs.title, - vod_pic: it.attribs['data-original'], - vod_remarks: remarks || '', - }; - }); - const hasMore = $('ul.myui-page > li > a:contains(下一页)').length > 0; - const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg); - return JSON.stringify({ - page: parseInt(pg), - pagecount: pgCount, - limit: 24, - total: 24 * pgCount, - list: videos, - }); -} - -async function detail(id) { - const html = await request(url + '/voddetail/' + id + '.html'); - const $ = load(html); - let vod = { - vod_id: id, - vod_name: $('h1:first').text().trim(), - vod_type: $('.myui-content__detail p:first a').text(), - vod_actor: $('.myui-content__detail p:nth-child(5)').text().replace('主演:',''), - vod_director: $('.myui-content__detail p:nth-child(6)').text().replace('导演:',''), - vod_pic: $('div.myui-content__thumb img:first').attr('data-original'), - vod_remarks :$('#rating:first span').text().replace(/\s{2,}/g, ' '), - vod_content: $('span.data').text().trim(), - }; - const playlist = _.map($('ul.sort-list > li > a'), (it) => { - return it.children[0].data + '$' + it.attribs.href.replace(/\/vodplay\/(.*).html/g, '$1'); - }); - vod.vod_play_from = key; - vod.vod_play_url = playlist.join('#'); - return JSON.stringify({ - list: [vod], - }); -} - -async function play(flag, id, flags) { - const link = url + '/vodplay/' + id + '.html'; - const html = await request(link); - const $ = load(html); - const js = JSON.parse($('script:contains(player_)').html().replace('var player_data=','')); - const playUrl = js.url.replace('index.m3u8','hls\/index.m3u8'); - return JSON.stringify({ - parse: 0, - url: playUrl, - }); -} - -async function search(wd, quick) { - let data = JSON.parse(await request(url + '/index.php/ajax/suggest?mid=1&wd=' + wd)).list; - let videos = []; - for (const vod of data) { - videos.push({ - vod_id: vod.id, - vod_name: vod.name, - vod_pic: vod.pic, - vod_remarks: '', - }); - } - return JSON.stringify({ - list: videos, - }); -} - -export function __jsEvalReturn() { - return { - init: init, - home: home, - homeVod: homeVod, - category: category, - detail: detail, - play: play, - search: search, - }; +import { Crypto, load, _, jinja2 } from './lib/cat.js'; + +let key = 'duboku'; +let url = 'https://u.duboku.io'; +let siteKey = ''; +let siteType = 0; + +const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1'; + +async function request(reqUrl, agentSp) { + let res = await req(reqUrl, { + method: 'get', + headers: { + 'User-Agent': agentSp || UA, + 'Referer': url + }, + }); + return res.content; +} + +// cfg = {skey: siteKey, ext: extend} +async function init(cfg) { + siteKey = cfg.skey; + siteType = cfg.stype; +} + +async function home(filter) { + const html = await request(url); + const $ = load(html); + const class_parse = $('ul.nav-list > li > a[href*=vodtype]'); + let classes = []; + classes = _.map(class_parse, (cls) => { + let typeId = cls.attribs['href']; + typeId = typeId.substring(typeId.lastIndexOf('/') + 1).replace('.html',''); + return { + type_id: typeId, + type_name: cls.children[0].data, + }; + }); + let filterObj = { + "2":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"2"},{"n":"陆剧","v":"13"},{"n":"日韩剧","v":"15"},{"n":"短剧","v":"21"},{"n":"台泰剧","v":"14"},{"n":"港剧","v":"20"}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"内地"},{"n":"韩国","v":"韩国"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"美国","v":"美国"},{"n":"英国","v":"英国"},{"n":"巴西","v":"巴西"},{"n":"泰国","v":"泰国"},{"n":"法国","v":"法国"},{"n":"日本","v":"日本"},{"n":"荷兰","v":"荷兰"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"韩语","v":"韩语"},{"n":"泰语","v":"泰语"},{"n":"法语","v":"法语"},{"n":"日语","v":"日语"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "3":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"真人秀","v":"真人秀"},{"n":"选秀","v":"选秀"},{"n":"竞演","v":"竞演"},{"n":"情感","v":"情感"},{"n":"访谈","v":"访谈"},{"n":"播报","v":"播报"},{"n":"旅游","v":"旅游"},{"n":"音乐","v":"音乐"},{"n":"美食","v":"美食"},{"n":"纪实","v":"纪实"},{"n":"曲艺","v":"曲艺"},{"n":"生活","v":"生活"},{"n":"游戏互动","v":"游戏互动"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"内地"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"韩国","v":"韩国"},{"n":"美国","v":"美国"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "4":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"玄幻","v":"玄幻"},{"n":"武侠","v":"武侠"},{"n":"情感","v":"情感"},{"n":"科幻","v":"科幻"},{"n":"热血","v":"热血"},{"n":"推理","v":"推理"},{"n":"搞笑","v":"搞笑"},{"n":"冒险","v":"冒险"},{"n":"萝莉","v":"萝莉"},{"n":"校园","v":"校园"},{"n":"动作","v":"动作"},{"n":"机战","v":"机战"},{"n":"运动","v":"运动"},{"n":"战争","v":"战争"},{"n":"少年","v":"少年"},{"n":"少女","v":"少女"},{"n":"社会","v":"社会"},{"n":"亲子","v":"亲子"},{"n":"益智","v":"益智"},{"n":"励志","v":"励志"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"国产","v":"国产"},{"n":"日本","v":"日本"},{"n":"美国","v":"美国"},{"n":"法国","v":"法国"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "13":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "15":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"韩国","v":"韩国"},{"n":"日本","v":"日本"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "21":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "14":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"台湾","v":"台湾"},{"n":"泰国","v":"泰国"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "20":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}] + }; + + return JSON.stringify({ + class: classes, + filters: filterObj, + }); +} + +async function homeVod() { + const link = url + '/vodshow/2--hits---------.html'; + const html = await request(link); + const $ = load(html); + const items = $('div.myui-panel_bd > ul.myui-vodlist > li'); + let videos = _.map(items, (item) => { + const it = $(item).find('a:first')[0]; + const remarks = $($(item).find('span.pic-text')[0]).text().trim(); + return { + vod_id: it.attribs.href.replace(/.*?\/voddetail\/(.*).html/g, '$1'), + vod_name: it.attribs.title, + vod_pic: it.attribs['data-original'], + vod_remarks: remarks || '', + }; + }); + return JSON.stringify({ + list: videos, + }); +} + +async function category(tid, pg, filter, extend) { + if (pg <= 0) pg = 1; + + const link = url + '/vodshow/' + (extend.CateId || tid) + '-'+(extend.area || '')+'-'+(extend.by || 'time')+'-'+(extend.class || '')+'-'+(extend.lang || '')+'-'+(extend.letter || '')+'---' + (`${pg}`) + '---'+(extend.year || '')+'.html'; + const html = await request(link); + const $ = load(html); + const items = $('div.myui-panel_bd > ul.myui-vodlist > li'); + let videos = _.map(items, (item) => { + const it = $(item).find('a:first')[0]; + const remarks = $($(item).find('span.pic-text')[0]).text().trim(); + return { + vod_id: it.attribs.href.replace(/.*?\/voddetail\/(.*).html/g, '$1'), + vod_name: it.attribs.title, + vod_pic: it.attribs['data-original'], + vod_remarks: remarks || '', + }; + }); + const hasMore = $('ul.myui-page > li > a:contains(下一页)').length > 0; + const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg); + return JSON.stringify({ + page: parseInt(pg), + pagecount: pgCount, + limit: 24, + total: 24 * pgCount, + list: videos, + }); +} + +async function detail(id) { + const html = await request(url + '/voddetail/' + id + '.html'); + const $ = load(html); + let vod = { + vod_id: id, + vod_name: $('h1:first').text().trim(), + vod_type: $('.myui-content__detail p:first a').text(), + vod_actor: $('.myui-content__detail p:nth-child(5)').text().replace('主演:',''), + vod_director: $('.myui-content__detail p:nth-child(6)').text().replace('导演:',''), + vod_pic: $('div.myui-content__thumb img:first').attr('data-original'), + vod_remarks :$('#rating:first span').text().replace(/\s{2,}/g, ' '), + vod_content: $('span.data').text().trim(), + }; + const playlist = _.map($('ul.sort-list > li > a'), (it) => { + return it.children[0].data + '$' + it.attribs.href.replace(/\/vodplay\/(.*).html/g, '$1'); + }); + vod.vod_play_from = key; + vod.vod_play_url = playlist.join('#'); + return JSON.stringify({ + list: [vod], + }); +} + +async function play(flag, id, flags) { + const link = url + '/vodplay/' + id + '.html'; + const html = await request(link); + const $ = load(html); + const js = JSON.parse($('script:contains(player_)').html().replace('var player_data=','')); + const playUrl = js.url.replace('index.m3u8','hls\/index.m3u8'); + return JSON.stringify({ + parse: 0, + url: playUrl, + }); +} + +async function search(wd, quick) { + let data = JSON.parse(await request(url + '/index.php/ajax/suggest?mid=1&wd=' + wd)).list; + let videos = []; + for (const vod of data) { + videos.push({ + vod_id: vod.id, + vod_name: vod.name, + vod_pic: vod.pic, + vod_remarks: '', + }); + } + return JSON.stringify({ + list: videos, + }); +} + +export function __jsEvalReturn() { + return { + init: init, + home: home, + homeVod: homeVod, + category: category, + detail: detail, + play: play, + search: search, + }; } \ No newline at end of file diff --git a/JN/EXT/OPENJS/ikanbot_open.js b/JN/EXT/OPENJS/open/ikanbot_open.js similarity index 96% rename from JN/EXT/OPENJS/ikanbot_open.js rename to JN/EXT/OPENJS/open/ikanbot_open.js index 2fc1f0a2..95fd9ba1 100644 --- a/JN/EXT/OPENJS/ikanbot_open.js +++ b/JN/EXT/OPENJS/open/ikanbot_open.js @@ -1,203 +1,203 @@ -import { Crypto, load, _ } from './lib/cat.js'; - -let key = 'ikanbot'; -let url = 'https://www.ikanbot.com'; -let siteKey = ''; -let siteType = 0; - -const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1'; - -async function request(reqUrl, agentSp) { - let res = await req(reqUrl, { - method: 'get', - headers: { - 'User-Agent': agentSp || UA, - }, - }); - return res.content; -} - -// cfg = {skey: siteKey, ext: extend} -async function init(cfg) { - siteKey = cfg.skey; - siteType = cfg.stype; -} - -function getClass($) { - const nav = $('ul.nav-pills:eq(1) > li > a'); - let tags = { - key: 'tag', - name: '标签', - value: _.map(nav, (n) => { - return { n: n.children[0].data, v: n.attribs.href }; - }), - }; - tags['init'] = tags.value[0].v; - const title = $('title:first').text().split('-')[0].substring(2); - return { cls: { type_id: tags.value[0].v, type_name: title }, tags: [tags] }; -} - -async function home(filter) { - let classes = []; - let filterObj = {}; - for (const cate of ['/hot/index-movie-热门.html', '/hot/index-tv-热门.html']) { - const html = await request(url + cate); - const $ = load(html); - const { cls, tags } = getClass($); - classes.push(cls); - filterObj[cls.type_id] = tags; - } - return JSON.stringify({ - class: classes, - filters: filterObj, - }); -} - -async function homeVod() { - return '{}'; -} - -async function category(tid, pg, filter, extend) { - if (pg <= 0) pg = 1; - const link = url + (extend.tag || tid).replace('.html', pg > 1 ? `-p-${pg}.html` : '.html'); - const html = await request(link); - const $ = load(html); - const items = $('div.v-list a.item'); - var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {}); - let videos = _.map(items, (item) => { - const img = $(item).find('img:first')[0]; - return { - vod_id: item.attribs.href, - vod_name: img.attribs.alt, - vod_pic: jsBase + base64Encode(img.attribs['data-src']), - vod_remarks: '', - }; - }); - const hasMore = $('div.page-more > a:contains(下一页)').length > 0; - const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg); - return JSON.stringify({ - page: parseInt(pg), - pagecount: pgCount, - limit: 24, - total: 24 * pgCount, - list: videos, - }); -} - -async function detail(id) { - const html = await request(url + id); - const $ = load(html); - var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {}); - const detail = $('div.detail > .meta'); - let vod = { - vod_id: id, - vod_pic: jsBase + base64Encode($('div.item-root > img')[0].attribs['data-src']), - vod_remarks: '', - }; - for (const info of detail) { - if ($(info).hasClass('title')) { - vod.vod_name = info.children[0].data; - } else if ($(info).hasClass('year')) { - vod.vod_area = info.children[0].data; - } else if ($(info).hasClass('country')) { - vod.vod_area = info.children[0].data; - } else if ($(info).hasClass('celebrity')) { - vod.vod_actor = info.children[0].data; - } - } - - const res = await req(url + '/api/getResN?videoId=' + id.substring(id.lastIndexOf('/') + 1) + '&mtype=2', { - headers: { - Referer: url, - 'User-Agent': UA, - }, - }); - const list = JSON.parse(res.content).data.list; - let playlist = {}; - for (const l of list) { - const flagData = JSON.parse(l.resData); - for (const f of flagData) { - const from = f.flag; - const urls = f.url; - if (!from || !urls) continue; - if (playlist[from]) continue; - playlist[from] = urls; - } - } - vod.vod_play_from = _.keys(playlist).join('$$$'); - vod.vod_play_url = _.values(playlist).join('$$$'); - return JSON.stringify({ - list: [vod], - }); -} - -function base64Encode(text) { - return Crypto.enc.Base64.stringify(Crypto.enc.Utf8.parse(text)); -} - -function base64Decode(text) { - return Crypto.enc.Utf8.stringify(Crypto.enc.Base64.parse(text)); -} - -async function proxy(segments, headers) { - let what = segments[0]; - let url = base64Decode(segments[1]); - if (what == 'img') { - var resp = await req(url, { - buffer: 2, - headers: { - Referer: url, - 'User-Agent': UA, - }, - }); - return JSON.stringify({ - code: resp.code, - buffer: 2, - content: resp.content, - headers: resp.headers, - }); - } - return JSON.stringify({ - code: 500, - content: '', - }); -} - -async function play(flag, id, flags) { - return JSON.stringify({ - parse: 0, - url: id, - }); -} - -async function search(wd, quick) { - const html = await request(url + '/search?q=' + wd); - const $ = load(html); - const items = $('div.media > div.media-left > a'); - var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {}); - let videos = _.map(items, (item) => { - const img = $(item).find('img:first')[0]; - return { - vod_id: item.attribs.href, - vod_name: img.attribs.alt, - vod_pic: jsBase + base64Encode(img.attribs['data-src']), - vod_remarks: '', - }; - }); - return JSON.stringify({ - list: videos, - }); -} - -export function __jsEvalReturn() { - return { - init: init, - home: home, - homeVod: homeVod, - category: category, - detail: detail, - play: play, - proxy: proxy, - search: search, - }; -} +import { Crypto, load, _ } from './lib/cat.js'; + +let key = 'ikanbot'; +let url = 'https://www.ikanbot.com'; +let siteKey = ''; +let siteType = 0; + +const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1'; + +async function request(reqUrl, agentSp) { + let res = await req(reqUrl, { + method: 'get', + headers: { + 'User-Agent': agentSp || UA, + }, + }); + return res.content; +} + +// cfg = {skey: siteKey, ext: extend} +async function init(cfg) { + siteKey = cfg.skey; + siteType = cfg.stype; +} + +function getClass($) { + const nav = $('ul.nav-pills:eq(1) > li > a'); + let tags = { + key: 'tag', + name: '标签', + value: _.map(nav, (n) => { + return { n: n.children[0].data, v: n.attribs.href }; + }), + }; + tags['init'] = tags.value[0].v; + const title = $('title:first').text().split('-')[0].substring(2); + return { cls: { type_id: tags.value[0].v, type_name: title }, tags: [tags] }; +} + +async function home(filter) { + let classes = []; + let filterObj = {}; + for (const cate of ['/hot/index-movie-热门.html', '/hot/index-tv-热门.html']) { + const html = await request(url + cate); + const $ = load(html); + const { cls, tags } = getClass($); + classes.push(cls); + filterObj[cls.type_id] = tags; + } + return JSON.stringify({ + class: classes, + filters: filterObj, + }); +} + +async function homeVod() { + return '{}'; +} + +async function category(tid, pg, filter, extend) { + if (pg <= 0) pg = 1; + const link = url + (extend.tag || tid).replace('.html', pg > 1 ? `-p-${pg}.html` : '.html'); + const html = await request(link); + const $ = load(html); + const items = $('div.v-list a.item'); + var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {}); + let videos = _.map(items, (item) => { + const img = $(item).find('img:first')[0]; + return { + vod_id: item.attribs.href, + vod_name: img.attribs.alt, + vod_pic: jsBase + base64Encode(img.attribs['data-src']), + vod_remarks: '', + }; + }); + const hasMore = $('div.page-more > a:contains(下一页)').length > 0; + const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg); + return JSON.stringify({ + page: parseInt(pg), + pagecount: pgCount, + limit: 24, + total: 24 * pgCount, + list: videos, + }); +} + +async function detail(id) { + const html = await request(url + id); + const $ = load(html); + var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {}); + const detail = $('div.detail > .meta'); + let vod = { + vod_id: id, + vod_pic: jsBase + base64Encode($('div.item-root > img')[0].attribs['data-src']), + vod_remarks: '', + }; + for (const info of detail) { + if ($(info).hasClass('title')) { + vod.vod_name = info.children[0].data; + } else if ($(info).hasClass('year')) { + vod.vod_area = info.children[0].data; + } else if ($(info).hasClass('country')) { + vod.vod_area = info.children[0].data; + } else if ($(info).hasClass('celebrity')) { + vod.vod_actor = info.children[0].data; + } + } + + const res = await req(url + '/api/getResN?videoId=' + id.substring(id.lastIndexOf('/') + 1) + '&mtype=2', { + headers: { + Referer: url, + 'User-Agent': UA, + }, + }); + const list = JSON.parse(res.content).data.list; + let playlist = {}; + for (const l of list) { + const flagData = JSON.parse(l.resData); + for (const f of flagData) { + const from = f.flag; + const urls = f.url; + if (!from || !urls) continue; + if (playlist[from]) continue; + playlist[from] = urls; + } + } + vod.vod_play_from = _.keys(playlist).join('$$$'); + vod.vod_play_url = _.values(playlist).join('$$$'); + return JSON.stringify({ + list: [vod], + }); +} + +function base64Encode(text) { + return Crypto.enc.Base64.stringify(Crypto.enc.Utf8.parse(text)); +} + +function base64Decode(text) { + return Crypto.enc.Utf8.stringify(Crypto.enc.Base64.parse(text)); +} + +async function proxy(segments, headers) { + let what = segments[0]; + let url = base64Decode(segments[1]); + if (what == 'img') { + var resp = await req(url, { + buffer: 2, + headers: { + Referer: url, + 'User-Agent': UA, + }, + }); + return JSON.stringify({ + code: resp.code, + buffer: 2, + content: resp.content, + headers: resp.headers, + }); + } + return JSON.stringify({ + code: 500, + content: '', + }); +} + +async function play(flag, id, flags) { + return JSON.stringify({ + parse: 0, + url: id, + }); +} + +async function search(wd, quick) { + const html = await request(url + '/search?q=' + wd); + const $ = load(html); + const items = $('div.media > div.media-left > a'); + var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {}); + let videos = _.map(items, (item) => { + const img = $(item).find('img:first')[0]; + return { + vod_id: item.attribs.href, + vod_name: img.attribs.alt, + vod_pic: jsBase + base64Encode(img.attribs['data-src']), + vod_remarks: '', + }; + }); + return JSON.stringify({ + list: videos, + }); +} + +export function __jsEvalReturn() { + return { + init: init, + home: home, + homeVod: homeVod, + category: category, + detail: detail, + play: play, + proxy: proxy, + search: search, + }; +} diff --git a/JN/EXT/OPENJS/kkys_open.js b/JN/EXT/OPENJS/open/kkys_open.js similarity index 96% rename from JN/EXT/OPENJS/kkys_open.js rename to JN/EXT/OPENJS/open/kkys_open.js index d8ce82b9..a60b0d51 100644 --- a/JN/EXT/OPENJS/kkys_open.js +++ b/JN/EXT/OPENJS/open/kkys_open.js @@ -1,364 +1,364 @@ -import { Crypto, dayjs, jinja2, _ } from './lib/cat.js'; - -let key = 'kkys'; -let url = 'https://api1.baibaipei.com:8899'; -let device = {}; -let siteKey = ''; -let siteType = 0; - -async function request(reqUrl, postData, agentSp, get) { - let ts = dayjs().valueOf().toString(); - let rand = randStr(32); - let sign = Crypto.MD5('abcdexxxdd2daklmn25129_' + ts + '_' + rand) - .toString() - .toLowerCase(); - let headers = { - 'user-agent': agentSp || device.ua, - }; - if (reqUrl.includes('baibaipei')) { - headers['device-id'] = device.id; - headers['push-token'] = ''; - headers['sign'] = sign; - headers['time'] = ts; - headers['md5'] = rand; - headers['version'] = '2.1.0'; - headers['system-model'] = device.model; - headers['system-brand'] = device.brand; - headers['system-version'] = device.release; - } - let res = await req(reqUrl, { - method: get ? 'get' : 'post', - headers: headers, - data: postData || {}, - postType: get ? '' : 'form', - }); - - let content = res.content; - // console.log(content); - return content; -} - -async function init(cfg) { - siteKey = cfg.skey; - siteType = cfg.stype; - var deviceKey = 'device'; - var deviceInfo = await local.get(key, deviceKey); - if (deviceInfo.length > 0) { - try { - device = JSON.parse(deviceInfo); - } catch (error) {} - } - if (_.isEmpty(device)) { - device = randDevice(); - device.id = randStr(33).toLowerCase(); - device.ua = 'okhttp/4.1.0'; - await local.set(key, deviceKey, JSON.stringify(device)); - } -} - -async function home(filter) { - // await req('https://www.facebook.com', {}); - let data = JSON.parse(await request(url + '/api.php/Index/getTopVideoCategory')).data; - let classes = []; - let filterObj = {}; - for (const type of data) { - let typeName = type.nav_name; - if (typeName == '推荐') continue; - let typeId = type.nav_type_id.toString(); - classes.push({ - type_id: typeId, - type_name: typeName, - }); - if (!filter) continue; - try { - let filterAll = []; - let filterData = JSON.parse(await request(url + '/api.php/Video/getFilterType', { type: typeId })).data; - for (let key of Object.keys(filterData)) { - let itemValues = filterData[key]; - if (key === 'plot') key = 'class'; - let typeExtendName = ''; - switch (key) { - case 'class': - typeExtendName = '类型'; - break; - case 'area': - typeExtendName = '地区'; - break; - case 'lang': - typeExtendName = '语言'; - break; - case 'year': - typeExtendName = '年代'; - break; - case 'sort': - typeExtendName = '排序'; - break; - } - if (typeExtendName.length === 0) continue; - let newTypeExtend = { - key: key, - name: typeExtendName, - }; - let newTypeExtendKV = []; - for (let j = 0; j < itemValues.length; j++) { - const name = itemValues[j]; - let value = key === 'sort' ? j + '' : name === '全部' ? '0' : name; - newTypeExtendKV.push({ n: name, v: value }); - } - newTypeExtend['init'] = key === 'sort' ? '1' : newTypeExtendKV[0]['v']; - newTypeExtend.value = newTypeExtendKV; - filterAll.push(newTypeExtend); - } - if (!_.isEmpty(filterAll)) { - filterObj[typeId] = filterAll; - } - } catch (e) { - console.log(e); - } - } - // console.log(await homeVod()); - // console.log(classes); - // console.log(filterObj); - return JSON.stringify({ - class: classes, - filters: filterObj, - }); -} - -async function homeVod() { - let jsonArray = JSON.parse(await request(url + '/api.php/Index/getHomePage', { type: 1, p: 1 })).data.video; - let videos = []; - for (const item of jsonArray) { - if (item.title.styleType !== 0) continue; - for (const vObj of item.list) { - videos.push({ - vod_id: vObj.vod_id, - vod_name: vObj.vod_name, - vod_pic: vObj.vod_pic, - vod_remarks: vObj.vod_remarks || vObj.vod_score || '', - }); - } - } - return JSON.stringify({ - list: videos, - }); -} - -async function category(tid, pg, filter, extend) { - if (pg == 0) pg = 1; - let reqUrl = url + '/api.php/Video/getFilterVideoList'; - var formData = JSON.parse( - jinja2( - `{ - "type": "{{tid}}", - "p": "{{pg}}", - "area": "{{ext.area|default(0)}}", - "year": "{{ext.year|default(0)}}", - "sort": "{{ext.sort|default(0)}}", - "class": "{{ext.class|default(0)}}" - }`, - { ext: extend, tid: tid, pg: pg } - ) - ); - console.log(formData); - let data = JSON.parse(await request(reqUrl, formData)).data; - let videos = []; - for (const vod of data.data) { - videos.push({ - vod_id: vod.vod_id, - vod_name: vod.vod_name, - vod_pic: vod.vod_pic, - vod_remarks: vod.vod_remarks || vod.vod_score || '', - }); - } - return JSON.stringify({ - page: parseInt(data.current_page), - pagecount: parseInt(data.last_page), - limit: parseInt(data.per_page), - total: parseInt(data.total), - list: videos, - }); -} - -async function detail(id) { - let data = JSON.parse(await request(url + '/api.php/Video/getVideoInfo', { video_id: id })).data.video; - let vod = { - vod_id: data.vod_id, - vod_name: data.vod_name, - vod_pic: data.vod_pic, - type_name: data.vod_class, - vod_year: data.vod_year, - vod_area: data.vod_area, - vod_remarks: data.vod_remarks || '', - vod_actor: data.vod_actor, - vod_director: data.vod_director, - vod_content: data.vod_content.trim(), - }; - let playlist = {}; - for (const item of data.vod_play) { - let from = item.playerForm; - if (from === 'jp') continue; - if (from === 'xg') continue; - let urls = []; - for (const u of item.url) { - urls.push(formatPlayUrl(vod.vod_name, u.title) + '$' + u.play_url); - } - if (!playlist.hasOwnProperty(from) && urls.length > 0) { - playlist[from] = urls; - } - } - parse = data.parse || []; - vod.vod_play_from = _.keys(playlist).join('$$$'); - let urls = _.values(playlist); - let vod_play_url = []; - for (const urlist of urls) { - vod_play_url.push(urlist.join('#')); - } - vod.vod_play_url = vod_play_url.join('$$$'); - return JSON.stringify({ - list: [vod], - }); -} - -var parse = []; - -async function play(flag, id, flags) { - try { - if (id.indexOf('youku') >= 0 || id.indexOf('iqiyi') >= 0 || id.indexOf('v.qq.com') >= 0 || id.indexOf('pptv') >= 0 || id.indexOf('le.com') >= 0 || id.indexOf('1905.com') >= 0 || id.indexOf('mgtv') >= 0) { - if (parse.length > 0) { - for (let index = 0; index < parse.length; index++) { - try { - const p = parse[index]; - let res = await req(p + id, { - headers: { 'user-agent': 'okhttp/4.1.0' }, - }); - var result = jsonParse(id, JSON.parse(res.content)); - if (result.url) { - result.parse = 0; - return JSON.stringify(result); - } - } catch (error) {} - } - } - } - if (id.indexOf('jqq-') >= 0) { - var jqqHeader = await request(url + '/jqqheader.json', null, null, true); - var jqqHeaders = JSON.parse(jqqHeader); - var ids = id.split('-'); - var jxJqq = await req('https://api.juquanquanapp.com/app/drama/detail?dramaId=' + ids[1] + '&episodeSid=' + ids[2] + '&quality=LD', { headers: jqqHeaders }); - var jqqInfo = JSON.parse(jxJqq.content); - if (jqqInfo.data.playInfo.url) { - return JSON.stringify({ - parse: 0, - playUrl: '', - url: jqqInfo.data.playInfo.url, - }); - } - } - let res = await request(url + '/video.php', { url: id }); - var result = jsonParse(id, JSON.parse(res).data); - if (result.url) { - result.parse = 0; - return JSON.stringify(result); - } - return JSON.stringify({ - parse: 0, - playUrl: '', - url: id, - }); - } catch (e) { - console.log(e); - return JSON.stringify({ - parse: 0, - url: id, - }); - } -} - -async function search(wd, quick) { - let data = JSON.parse(await request(url + '/api.php/Search/getSearch', { key: wd, type_id: 0, p: 1 })).data; - let videos = []; - for (const vod of data.data) { - videos.push({ - vod_id: vod.vod_id, - vod_name: vod.vod_name, - vod_pic: vod.vod_pic, - vod_remarks: vod.vod_remarks || vod.vod_score || '', - }); - } - return JSON.stringify({ - list: videos, - }); -} - -const charStr = 'abacdefghjklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789'; -function randStr(len, withNum) { - var _str = ''; - let containsNum = withNum === undefined ? true : withNum; - for (var i = 0; i < len; i++) { - let idx = _.random(0, containsNum ? charStr.length - 1 : charStr.length - 11); - _str += charStr[idx]; - } - return _str; -} - -function randDevice() { - return { - brand: 'Huawei', - model: 'HUAWEI Mate 20', - release: '10', - buildId: randStr(3, false).toUpperCase() + _.random(11, 99) + randStr(1, false).toUpperCase(), - }; -} - -function formatPlayUrl(src, name) { - return name - .trim() - .replaceAll(src, '') - .replace(/<|>|《|》/g, '') - .replace(/\$|#/g, ' ') - .trim(); -} - -function jsonParse(input, json) { - try { - let url = json.url ?? ''; - if (url.startsWith('//')) { - url = 'https:' + url; - } - if (!url.startsWith('http')) { - return {}; - } - let headers = json['headers'] || {}; - let ua = (json['user-agent'] || '').trim(); - if (ua.length > 0) { - headers['User-Agent'] = ua; - } - let referer = (json['referer'] || '').trim(); - if (referer.length > 0) { - headers['Referer'] = referer; - } - _.keys(headers).forEach((hk) => { - if (!headers[hk]) delete headers[hk]; - }); - return { - header: headers, - url: url, - }; - } catch (error) { - console.log(error); - } - return {}; -} - -export function __jsEvalReturn() { - return { - init: init, - home: home, - homeVod: homeVod, - category: category, - detail: detail, - play: play, - search: search, - }; -} +import { Crypto, dayjs, jinja2, _ } from './lib/cat.js'; + +let key = 'kkys'; +let url = 'https://api1.baibaipei.com:8899'; +let device = {}; +let siteKey = ''; +let siteType = 0; + +async function request(reqUrl, postData, agentSp, get) { + let ts = dayjs().valueOf().toString(); + let rand = randStr(32); + let sign = Crypto.MD5('abcdexxxdd2daklmn25129_' + ts + '_' + rand) + .toString() + .toLowerCase(); + let headers = { + 'user-agent': agentSp || device.ua, + }; + if (reqUrl.includes('baibaipei')) { + headers['device-id'] = device.id; + headers['push-token'] = ''; + headers['sign'] = sign; + headers['time'] = ts; + headers['md5'] = rand; + headers['version'] = '2.1.0'; + headers['system-model'] = device.model; + headers['system-brand'] = device.brand; + headers['system-version'] = device.release; + } + let res = await req(reqUrl, { + method: get ? 'get' : 'post', + headers: headers, + data: postData || {}, + postType: get ? '' : 'form', + }); + + let content = res.content; + // console.log(content); + return content; +} + +async function init(cfg) { + siteKey = cfg.skey; + siteType = cfg.stype; + var deviceKey = 'device'; + var deviceInfo = await local.get(key, deviceKey); + if (deviceInfo.length > 0) { + try { + device = JSON.parse(deviceInfo); + } catch (error) {} + } + if (_.isEmpty(device)) { + device = randDevice(); + device.id = randStr(33).toLowerCase(); + device.ua = 'okhttp/4.1.0'; + await local.set(key, deviceKey, JSON.stringify(device)); + } +} + +async function home(filter) { + // await req('https://www.facebook.com', {}); + let data = JSON.parse(await request(url + '/api.php/Index/getTopVideoCategory')).data; + let classes = []; + let filterObj = {}; + for (const type of data) { + let typeName = type.nav_name; + if (typeName == '推荐') continue; + let typeId = type.nav_type_id.toString(); + classes.push({ + type_id: typeId, + type_name: typeName, + }); + if (!filter) continue; + try { + let filterAll = []; + let filterData = JSON.parse(await request(url + '/api.php/Video/getFilterType', { type: typeId })).data; + for (let key of Object.keys(filterData)) { + let itemValues = filterData[key]; + if (key === 'plot') key = 'class'; + let typeExtendName = ''; + switch (key) { + case 'class': + typeExtendName = '类型'; + break; + case 'area': + typeExtendName = '地区'; + break; + case 'lang': + typeExtendName = '语言'; + break; + case 'year': + typeExtendName = '年代'; + break; + case 'sort': + typeExtendName = '排序'; + break; + } + if (typeExtendName.length === 0) continue; + let newTypeExtend = { + key: key, + name: typeExtendName, + }; + let newTypeExtendKV = []; + for (let j = 0; j < itemValues.length; j++) { + const name = itemValues[j]; + let value = key === 'sort' ? j + '' : name === '全部' ? '0' : name; + newTypeExtendKV.push({ n: name, v: value }); + } + newTypeExtend['init'] = key === 'sort' ? '1' : newTypeExtendKV[0]['v']; + newTypeExtend.value = newTypeExtendKV; + filterAll.push(newTypeExtend); + } + if (!_.isEmpty(filterAll)) { + filterObj[typeId] = filterAll; + } + } catch (e) { + console.log(e); + } + } + // console.log(await homeVod()); + // console.log(classes); + // console.log(filterObj); + return JSON.stringify({ + class: classes, + filters: filterObj, + }); +} + +async function homeVod() { + let jsonArray = JSON.parse(await request(url + '/api.php/Index/getHomePage', { type: 1, p: 1 })).data.video; + let videos = []; + for (const item of jsonArray) { + if (item.title.styleType !== 0) continue; + for (const vObj of item.list) { + videos.push({ + vod_id: vObj.vod_id, + vod_name: vObj.vod_name, + vod_pic: vObj.vod_pic, + vod_remarks: vObj.vod_remarks || vObj.vod_score || '', + }); + } + } + return JSON.stringify({ + list: videos, + }); +} + +async function category(tid, pg, filter, extend) { + if (pg == 0) pg = 1; + let reqUrl = url + '/api.php/Video/getFilterVideoList'; + var formData = JSON.parse( + jinja2( + `{ + "type": "{{tid}}", + "p": "{{pg}}", + "area": "{{ext.area|default(0)}}", + "year": "{{ext.year|default(0)}}", + "sort": "{{ext.sort|default(0)}}", + "class": "{{ext.class|default(0)}}" + }`, + { ext: extend, tid: tid, pg: pg } + ) + ); + console.log(formData); + let data = JSON.parse(await request(reqUrl, formData)).data; + let videos = []; + for (const vod of data.data) { + videos.push({ + vod_id: vod.vod_id, + vod_name: vod.vod_name, + vod_pic: vod.vod_pic, + vod_remarks: vod.vod_remarks || vod.vod_score || '', + }); + } + return JSON.stringify({ + page: parseInt(data.current_page), + pagecount: parseInt(data.last_page), + limit: parseInt(data.per_page), + total: parseInt(data.total), + list: videos, + }); +} + +async function detail(id) { + let data = JSON.parse(await request(url + '/api.php/Video/getVideoInfo', { video_id: id })).data.video; + let vod = { + vod_id: data.vod_id, + vod_name: data.vod_name, + vod_pic: data.vod_pic, + type_name: data.vod_class, + vod_year: data.vod_year, + vod_area: data.vod_area, + vod_remarks: data.vod_remarks || '', + vod_actor: data.vod_actor, + vod_director: data.vod_director, + vod_content: data.vod_content.trim(), + }; + let playlist = {}; + for (const item of data.vod_play) { + let from = item.playerForm; + if (from === 'jp') continue; + if (from === 'xg') continue; + let urls = []; + for (const u of item.url) { + urls.push(formatPlayUrl(vod.vod_name, u.title) + '$' + u.play_url); + } + if (!playlist.hasOwnProperty(from) && urls.length > 0) { + playlist[from] = urls; + } + } + parse = data.parse || []; + vod.vod_play_from = _.keys(playlist).join('$$$'); + let urls = _.values(playlist); + let vod_play_url = []; + for (const urlist of urls) { + vod_play_url.push(urlist.join('#')); + } + vod.vod_play_url = vod_play_url.join('$$$'); + return JSON.stringify({ + list: [vod], + }); +} + +var parse = []; + +async function play(flag, id, flags) { + try { + if (id.indexOf('youku') >= 0 || id.indexOf('iqiyi') >= 0 || id.indexOf('v.qq.com') >= 0 || id.indexOf('pptv') >= 0 || id.indexOf('le.com') >= 0 || id.indexOf('1905.com') >= 0 || id.indexOf('mgtv') >= 0) { + if (parse.length > 0) { + for (let index = 0; index < parse.length; index++) { + try { + const p = parse[index]; + let res = await req(p + id, { + headers: { 'user-agent': 'okhttp/4.1.0' }, + }); + var result = jsonParse(id, JSON.parse(res.content)); + if (result.url) { + result.parse = 0; + return JSON.stringify(result); + } + } catch (error) {} + } + } + } + if (id.indexOf('jqq-') >= 0) { + var jqqHeader = await request(url + '/jqqheader.json', null, null, true); + var jqqHeaders = JSON.parse(jqqHeader); + var ids = id.split('-'); + var jxJqq = await req('https://api.juquanquanapp.com/app/drama/detail?dramaId=' + ids[1] + '&episodeSid=' + ids[2] + '&quality=LD', { headers: jqqHeaders }); + var jqqInfo = JSON.parse(jxJqq.content); + if (jqqInfo.data.playInfo.url) { + return JSON.stringify({ + parse: 0, + playUrl: '', + url: jqqInfo.data.playInfo.url, + }); + } + } + let res = await request(url + '/video.php', { url: id }); + var result = jsonParse(id, JSON.parse(res).data); + if (result.url) { + result.parse = 0; + return JSON.stringify(result); + } + return JSON.stringify({ + parse: 0, + playUrl: '', + url: id, + }); + } catch (e) { + console.log(e); + return JSON.stringify({ + parse: 0, + url: id, + }); + } +} + +async function search(wd, quick) { + let data = JSON.parse(await request(url + '/api.php/Search/getSearch', { key: wd, type_id: 0, p: 1 })).data; + let videos = []; + for (const vod of data.data) { + videos.push({ + vod_id: vod.vod_id, + vod_name: vod.vod_name, + vod_pic: vod.vod_pic, + vod_remarks: vod.vod_remarks || vod.vod_score || '', + }); + } + return JSON.stringify({ + list: videos, + }); +} + +const charStr = 'abacdefghjklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789'; +function randStr(len, withNum) { + var _str = ''; + let containsNum = withNum === undefined ? true : withNum; + for (var i = 0; i < len; i++) { + let idx = _.random(0, containsNum ? charStr.length - 1 : charStr.length - 11); + _str += charStr[idx]; + } + return _str; +} + +function randDevice() { + return { + brand: 'Huawei', + model: 'HUAWEI Mate 20', + release: '10', + buildId: randStr(3, false).toUpperCase() + _.random(11, 99) + randStr(1, false).toUpperCase(), + }; +} + +function formatPlayUrl(src, name) { + return name + .trim() + .replaceAll(src, '') + .replace(/<|>|《|》/g, '') + .replace(/\$|#/g, ' ') + .trim(); +} + +function jsonParse(input, json) { + try { + let url = json.url ?? ''; + if (url.startsWith('//')) { + url = 'https:' + url; + } + if (!url.startsWith('http')) { + return {}; + } + let headers = json['headers'] || {}; + let ua = (json['user-agent'] || '').trim(); + if (ua.length > 0) { + headers['User-Agent'] = ua; + } + let referer = (json['referer'] || '').trim(); + if (referer.length > 0) { + headers['Referer'] = referer; + } + _.keys(headers).forEach((hk) => { + if (!headers[hk]) delete headers[hk]; + }); + return { + header: headers, + url: url, + }; + } catch (error) { + console.log(error); + } + return {}; +} + +export function __jsEvalReturn() { + return { + init: init, + home: home, + homeVod: homeVod, + category: category, + detail: detail, + play: play, + search: search, + }; +} diff --git a/JN/EXT/OPENJS/kunyu77_open.js b/JN/EXT/OPENJS/open/kunyu77_open.js similarity index 96% rename from JN/EXT/OPENJS/kunyu77_open.js rename to JN/EXT/OPENJS/open/kunyu77_open.js index 91d89361..a80c72de 100644 --- a/JN/EXT/OPENJS/kunyu77_open.js +++ b/JN/EXT/OPENJS/open/kunyu77_open.js @@ -1,341 +1,341 @@ -import { Crypto, dayjs, jinja2, Uri, _ } from './lib/cat.js'; - -let key = 'kunyu77'; -let url = 'http://api.tyun77.cn'; -let device = {}; -let timeOffset = 0; -let siteKey = ''; -let siteType = 0; - -async function request(reqUrl, agentSp) { - let sj = dayjs().unix() - timeOffset; - let uri = new Uri(reqUrl); - uri.addQueryParam('pcode', '010110005'); - uri.addQueryParam('version', '2.1.6'); - uri.addQueryParam('devid', device.id); - uri.addQueryParam('package', 'com.sevenVideo.app.android'); - uri.addQueryParam('sys', 'android'); - uri.addQueryParam('sysver', device.release); - uri.addQueryParam('brand', device.brand); - uri.addQueryParam('model', device.model.replaceAll(' ', '_')); - uri.addQueryParam('sj', sj); - let keys = []; - for (var i = 0; i < uri.queryPairs.length; i++) { - keys.push(uri.queryPairs[i][0]); - } - keys = _.sortBy(keys, function (name) { - return name; - }); - let tkSrc = uri.path(); - for (let k of keys) { - let v = uri.getQueryParamValue(k); - v = encodeURIComponent(v); - tkSrc += v; - } - tkSrc += sj; - tkSrc += 'XSpeUFjJ'; - console.log(tkSrc); - let tk = Crypto.MD5(tkSrc).toString().toLowerCase(); - console.log(tk); - let header = { - 'user-agent': agentSp || 'okhttp/3.12.0', - t: sj, - TK: tk, - }; - let res = await req(uri.toString(), { - headers: header, - }); - - let serverTime = res.headers.date; // dart all response header key is lowercase - let content = res.content; - let serverTimeS = dayjs(serverTime).unix(); - timeOffset = dayjs().unix() - serverTimeS; - // console.log(content); - return content; -} - -async function init(cfg) { - siteKey = cfg.skey; - siteType = cfg.stype; - var deviceKey = 'device'; - var deviceInfo = await local.get(key, deviceKey); - if (deviceInfo.length > 0) { - try { - device = JSON.parse(deviceInfo); - } catch (error) {} - } - if (_.isEmpty(device)) { - device = randDevice(); - device.id = randStr(32).toLowerCase(); - device.ua = 'Dalvik/2.1.0 (Linux; U; Android ' + device.release + '; ' + device.model + ' Build/' + device.buildId + ')'; - await local.set(key, deviceKey, JSON.stringify(device)); - } - await request(url + '/api.php/provide/getDomain'); - await request(url + '/api.php/provide/config'); - await request(url + '/api.php/provide/checkUpgrade'); - await request(url + '/api.php/provide/channel'); -} - -async function home(filter) { - let data = JSON.parse(await request(url + '/api.php/provide/filter')).data; - let classes = []; - let filterObj = {}; - let filterAll = []; - for (const key in data) { - classes.push({ - type_id: key, - type_name: data[key][0].cat, - }); - if (!filter) continue; - try { - let typeId = key.toString(); - if (_.isEmpty(filterAll)) { - let filterData = JSON.parse(await request(url + '/api.php/provide/searchFilter?type_id=0&pagenum=1&pagesize=1')).data.conditions; - // console.log(filterData); - // 年份 - let year = { - key: 'year', - name: '年份', - init: '', - }; - let yearValues = []; - yearValues.push({ n: '全部', v: '' }); - filterData.y.forEach((e) => { - yearValues.push({ n: e.name, v: e.value }); - }); - year['value'] = yearValues; - // 地区 - let area = { - key: 'area', - name: '地区', - init: '', - }; - let areaValues = []; - areaValues.push({ n: '全部', v: '' }); - filterData.a.forEach((e) => { - areaValues.push({ n: e.name, v: e.value }); - }); - area['value'] = areaValues; - // 类型 - let type = { - key: 'category', - name: '类型', - init: '', - }; - let typeValues = []; - typeValues.push({ n: '全部', v: '' }); - filterData.scat.forEach((e) => { - typeValues.push({ n: e.name, v: e.value }); - }); - type['value'] = typeValues; - - filterAll.push(year, area, type); - } - if (!_.isEmpty(filterAll)) { - filterObj[typeId] = filterAll; - } - } catch (e) { - console.log(e); - } - } - // console.log(classes); - // console.log(filterObj); - return JSON.stringify({ - class: classes, - filters: filterObj, - }); -} - -async function homeVod() { - let data = JSON.parse(await request(url + '/api.php/provide/homeBlock?type_id=0')).data; - let blocks = data.blocks; - let videos = []; - for (const block of blocks) { - let name = block.block_name; - if (name.indexOf('热播') >= 0) continue; - let contents = block.contents; - for (const content of contents) { - videos.push({ - vod_id: content.id, - vod_name: content.title, - vod_pic: content.videoCover, - vod_remarks: content.msg, - }); - } - } - return JSON.stringify({ - list: videos, - }); -} - -async function category(tid, pg, filter, extend) { - let reqUrl = url + '/api.php/provide/searchFilter?type_id=' + tid + '&pagenum=' + pg + '&pagesize=24&'; - reqUrl += jinja2('year={{ext.year}}&category={{ext.category}}&area={{ext.area}}', { ext: extend }); - let data = JSON.parse(await request(reqUrl)).data; - let videos = []; - for (const vod of data.result) { - videos.push({ - vod_id: vod.id, - vod_name: vod.title, - vod_pic: vod.videoCover, - vod_remarks: vod.msg, - }); - } - return JSON.stringify({ - page: parseInt(data.page), - pagecount: data.pagesize, - limit: 24, - total: data.total, - list: videos, - }); -} - -async function detail(id) { - let data = JSON.parse(await request(url + '/api.php/provide/videoDetail?ids=' + id)).data; - console.log(data); - let vod = { - vod_id: data.id, - vod_name: data.videoName, - vod_pic: data.videoCover, - type_name: data.subCategory, - vod_year: data.year, - vod_area: data.area, - vod_remarks: data.msg, - vod_actor: data.actor, - vod_director: data.director, - vod_content: data.brief.trim(), - }; - let episodes = JSON.parse(await request(url + '/api.php/provide/videoPlaylist?ids=' + id)).data.episodes; - let playlist = {}; - for (const episode of episodes) { - let playurls = episode.playurls; - for (const playurl of playurls) { - let from = playurl.playfrom; - let t = formatPlayUrl(vod.vod_name, playurl.title); - if (t.length == 0) t = playurl.title.trim(); - if (!playlist.hasOwnProperty(from)) { - playlist[from] = []; - } - playlist[from].push(t + '$' + playurl.playurl); - } - } - vod.vod_play_from = _.keys(playlist).join('$$$'); - let urls = _.values(playlist); - let vod_play_url = []; - for (const urlist of urls) { - vod_play_url.push(urlist.join('#')); - } - vod.vod_play_url = vod_play_url.join('$$$'); - return JSON.stringify({ - list: [vod], - }); -} - -async function play(flag, id, flags) { - try { - let data = JSON.parse(await request(url + '/api.php/provide/parserUrl?url=' + id + '&retryNum=0')).data; - let playHeader = data.playHeader; - let jxUrl = data.url; - let res = await req(jxUrl, { - headers: { - 'user-agent': 'okhttp/3.12.0', - }, - }); - let result = jsonParse(id, JSON.parse(res.content)); - result['parse'] = 0; - if (playHeader) { - result.header = _.merge(result.header, playHeader); - } - return JSON.stringify(result); - } catch (e) { - return JSON.stringify({ - parse: 0, - url: id, - }); - } -} - -async function search(wd, quick) { - let data = JSON.parse(await request(url + '/api.php/provide/searchVideo?searchName=' + wd + '&pg=1', 'okhttp/3.12.0')).data; - let videos = []; - for (const vod of data) { - videos.push({ - vod_id: vod.id, - vod_name: vod.videoName, - vod_pic: vod.videoCover, - vod_remarks: vod.msg, - }); - } - return JSON.stringify({ - list: videos, - }); -} - -const charStr = 'abacdefghjklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789'; -function randStr(len, withNum) { - var _str = ''; - let containsNum = withNum === undefined ? true : withNum; - for (var i = 0; i < len; i++) { - let idx = _.random(0, containsNum ? charStr.length - 1 : charStr.length - 11); - _str += charStr[idx]; - } - return _str; -} - -function randDevice() { - return { - brand: 'Huawei', - model: 'HUAWEI Mate 20', - release: '10', - buildId: randStr(3, false).toUpperCase() + _.random(11, 99) + randStr(1, false).toUpperCase(), - }; -} - -function formatPlayUrl(src, name) { - return name - .trim() - .replaceAll(src, '') - .replace(/<|>|《|》/g, '') - .replace(/\$|#/g, ' ') - .trim(); -} - -function jsonParse(input, json) { - try { - let url = json.url ?? ''; - if (url.startsWith('//')) { - url = 'https:' + url; - } - if (!url.startsWith('http')) { - return {}; - } - let headers = json['headers'] || {}; - let ua = (json['user-agent'] || '').trim(); - if (ua.length > 0) { - headers['User-Agent'] = ua; - } - let referer = (json['referer'] || '').trim(); - if (referer.length > 0) { - headers['Referer'] = referer; - } - return { - header: headers, - url: url, - }; - } catch (error) { - console.log(error); - } - return {}; -} - -export function __jsEvalReturn() { - return { - init: init, - home: home, - homeVod: homeVod, - category: category, - detail: detail, - play: play, - search: search, - }; -} +import { Crypto, dayjs, jinja2, Uri, _ } from './lib/cat.js'; + +let key = 'kunyu77'; +let url = 'http://api.tyun77.cn'; +let device = {}; +let timeOffset = 0; +let siteKey = ''; +let siteType = 0; + +async function request(reqUrl, agentSp) { + let sj = dayjs().unix() - timeOffset; + let uri = new Uri(reqUrl); + uri.addQueryParam('pcode', '010110005'); + uri.addQueryParam('version', '2.1.6'); + uri.addQueryParam('devid', device.id); + uri.addQueryParam('package', 'com.sevenVideo.app.android'); + uri.addQueryParam('sys', 'android'); + uri.addQueryParam('sysver', device.release); + uri.addQueryParam('brand', device.brand); + uri.addQueryParam('model', device.model.replaceAll(' ', '_')); + uri.addQueryParam('sj', sj); + let keys = []; + for (var i = 0; i < uri.queryPairs.length; i++) { + keys.push(uri.queryPairs[i][0]); + } + keys = _.sortBy(keys, function (name) { + return name; + }); + let tkSrc = uri.path(); + for (let k of keys) { + let v = uri.getQueryParamValue(k); + v = encodeURIComponent(v); + tkSrc += v; + } + tkSrc += sj; + tkSrc += 'XSpeUFjJ'; + console.log(tkSrc); + let tk = Crypto.MD5(tkSrc).toString().toLowerCase(); + console.log(tk); + let header = { + 'user-agent': agentSp || 'okhttp/3.12.0', + t: sj, + TK: tk, + }; + let res = await req(uri.toString(), { + headers: header, + }); + + let serverTime = res.headers.date; // dart all response header key is lowercase + let content = res.content; + let serverTimeS = dayjs(serverTime).unix(); + timeOffset = dayjs().unix() - serverTimeS; + // console.log(content); + return content; +} + +async function init(cfg) { + siteKey = cfg.skey; + siteType = cfg.stype; + var deviceKey = 'device'; + var deviceInfo = await local.get(key, deviceKey); + if (deviceInfo.length > 0) { + try { + device = JSON.parse(deviceInfo); + } catch (error) {} + } + if (_.isEmpty(device)) { + device = randDevice(); + device.id = randStr(32).toLowerCase(); + device.ua = 'Dalvik/2.1.0 (Linux; U; Android ' + device.release + '; ' + device.model + ' Build/' + device.buildId + ')'; + await local.set(key, deviceKey, JSON.stringify(device)); + } + await request(url + '/api.php/provide/getDomain'); + await request(url + '/api.php/provide/config'); + await request(url + '/api.php/provide/checkUpgrade'); + await request(url + '/api.php/provide/channel'); +} + +async function home(filter) { + let data = JSON.parse(await request(url + '/api.php/provide/filter')).data; + let classes = []; + let filterObj = {}; + let filterAll = []; + for (const key in data) { + classes.push({ + type_id: key, + type_name: data[key][0].cat, + }); + if (!filter) continue; + try { + let typeId = key.toString(); + if (_.isEmpty(filterAll)) { + let filterData = JSON.parse(await request(url + '/api.php/provide/searchFilter?type_id=0&pagenum=1&pagesize=1')).data.conditions; + // console.log(filterData); + // 年份 + let year = { + key: 'year', + name: '年份', + init: '', + }; + let yearValues = []; + yearValues.push({ n: '全部', v: '' }); + filterData.y.forEach((e) => { + yearValues.push({ n: e.name, v: e.value }); + }); + year['value'] = yearValues; + // 地区 + let area = { + key: 'area', + name: '地区', + init: '', + }; + let areaValues = []; + areaValues.push({ n: '全部', v: '' }); + filterData.a.forEach((e) => { + areaValues.push({ n: e.name, v: e.value }); + }); + area['value'] = areaValues; + // 类型 + let type = { + key: 'category', + name: '类型', + init: '', + }; + let typeValues = []; + typeValues.push({ n: '全部', v: '' }); + filterData.scat.forEach((e) => { + typeValues.push({ n: e.name, v: e.value }); + }); + type['value'] = typeValues; + + filterAll.push(year, area, type); + } + if (!_.isEmpty(filterAll)) { + filterObj[typeId] = filterAll; + } + } catch (e) { + console.log(e); + } + } + // console.log(classes); + // console.log(filterObj); + return JSON.stringify({ + class: classes, + filters: filterObj, + }); +} + +async function homeVod() { + let data = JSON.parse(await request(url + '/api.php/provide/homeBlock?type_id=0')).data; + let blocks = data.blocks; + let videos = []; + for (const block of blocks) { + let name = block.block_name; + if (name.indexOf('热播') >= 0) continue; + let contents = block.contents; + for (const content of contents) { + videos.push({ + vod_id: content.id, + vod_name: content.title, + vod_pic: content.videoCover, + vod_remarks: content.msg, + }); + } + } + return JSON.stringify({ + list: videos, + }); +} + +async function category(tid, pg, filter, extend) { + let reqUrl = url + '/api.php/provide/searchFilter?type_id=' + tid + '&pagenum=' + pg + '&pagesize=24&'; + reqUrl += jinja2('year={{ext.year}}&category={{ext.category}}&area={{ext.area}}', { ext: extend }); + let data = JSON.parse(await request(reqUrl)).data; + let videos = []; + for (const vod of data.result) { + videos.push({ + vod_id: vod.id, + vod_name: vod.title, + vod_pic: vod.videoCover, + vod_remarks: vod.msg, + }); + } + return JSON.stringify({ + page: parseInt(data.page), + pagecount: data.pagesize, + limit: 24, + total: data.total, + list: videos, + }); +} + +async function detail(id) { + let data = JSON.parse(await request(url + '/api.php/provide/videoDetail?ids=' + id)).data; + console.log(data); + let vod = { + vod_id: data.id, + vod_name: data.videoName, + vod_pic: data.videoCover, + type_name: data.subCategory, + vod_year: data.year, + vod_area: data.area, + vod_remarks: data.msg, + vod_actor: data.actor, + vod_director: data.director, + vod_content: data.brief.trim(), + }; + let episodes = JSON.parse(await request(url + '/api.php/provide/videoPlaylist?ids=' + id)).data.episodes; + let playlist = {}; + for (const episode of episodes) { + let playurls = episode.playurls; + for (const playurl of playurls) { + let from = playurl.playfrom; + let t = formatPlayUrl(vod.vod_name, playurl.title); + if (t.length == 0) t = playurl.title.trim(); + if (!playlist.hasOwnProperty(from)) { + playlist[from] = []; + } + playlist[from].push(t + '$' + playurl.playurl); + } + } + vod.vod_play_from = _.keys(playlist).join('$$$'); + let urls = _.values(playlist); + let vod_play_url = []; + for (const urlist of urls) { + vod_play_url.push(urlist.join('#')); + } + vod.vod_play_url = vod_play_url.join('$$$'); + return JSON.stringify({ + list: [vod], + }); +} + +async function play(flag, id, flags) { + try { + let data = JSON.parse(await request(url + '/api.php/provide/parserUrl?url=' + id + '&retryNum=0')).data; + let playHeader = data.playHeader; + let jxUrl = data.url; + let res = await req(jxUrl, { + headers: { + 'user-agent': 'okhttp/3.12.0', + }, + }); + let result = jsonParse(id, JSON.parse(res.content)); + result['parse'] = 0; + if (playHeader) { + result.header = _.merge(result.header, playHeader); + } + return JSON.stringify(result); + } catch (e) { + return JSON.stringify({ + parse: 0, + url: id, + }); + } +} + +async function search(wd, quick) { + let data = JSON.parse(await request(url + '/api.php/provide/searchVideo?searchName=' + wd + '&pg=1', 'okhttp/3.12.0')).data; + let videos = []; + for (const vod of data) { + videos.push({ + vod_id: vod.id, + vod_name: vod.videoName, + vod_pic: vod.videoCover, + vod_remarks: vod.msg, + }); + } + return JSON.stringify({ + list: videos, + }); +} + +const charStr = 'abacdefghjklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789'; +function randStr(len, withNum) { + var _str = ''; + let containsNum = withNum === undefined ? true : withNum; + for (var i = 0; i < len; i++) { + let idx = _.random(0, containsNum ? charStr.length - 1 : charStr.length - 11); + _str += charStr[idx]; + } + return _str; +} + +function randDevice() { + return { + brand: 'Huawei', + model: 'HUAWEI Mate 20', + release: '10', + buildId: randStr(3, false).toUpperCase() + _.random(11, 99) + randStr(1, false).toUpperCase(), + }; +} + +function formatPlayUrl(src, name) { + return name + .trim() + .replaceAll(src, '') + .replace(/<|>|《|》/g, '') + .replace(/\$|#/g, ' ') + .trim(); +} + +function jsonParse(input, json) { + try { + let url = json.url ?? ''; + if (url.startsWith('//')) { + url = 'https:' + url; + } + if (!url.startsWith('http')) { + return {}; + } + let headers = json['headers'] || {}; + let ua = (json['user-agent'] || '').trim(); + if (ua.length > 0) { + headers['User-Agent'] = ua; + } + let referer = (json['referer'] || '').trim(); + if (referer.length > 0) { + headers['Referer'] = referer; + } + return { + header: headers, + url: url, + }; + } catch (error) { + console.log(error); + } + return {}; +} + +export function __jsEvalReturn() { + return { + init: init, + home: home, + homeVod: homeVod, + category: category, + detail: detail, + play: play, + search: search, + }; +} diff --git a/JN/EXT/OPENJS/open/lib/cat.js b/JN/EXT/OPENJS/open/lib/cat.js new file mode 100644 index 00000000..3a1d237e --- /dev/null +++ b/JN/EXT/OPENJS/open/lib/cat.js @@ -0,0 +1 @@ +var e,pe,t=function(){return(t=Object.assign||function(e){for(var t,n=1,r=arguments.length;n{var t;return{name:e,value:this.attribs[e],namespace:null==(t=this["x-attribsNamespace"])?void 0:t[e],prefix:null==(t=this["x-attribsPrefix"])?void 0:t[e]}})}}function S(t){return t.type===e.Tag||t.type===e.Script||t.type===e.Style}function C(t){return t.type===e.CDATA}function N(t){return t.type===e.Text}function b(t){return t.type===e.Comment}function I(t){return t.type===e.Directive}function O(t){return t.type===e.Root}function k(e){return Object.prototype.hasOwnProperty.call(e,"children")}function L(e,t=!1){let n;if(N(e))n=new _(e.data);else if(b(e))n=new E(e.data);else if(S(e)){const r=t?D(e.children):[],i=new y(e.name,{...e.attribs},r);r.forEach(e=>e.parent=i),null!=e.namespace&&(i.namespace=e.namespace),e["x-attribsNamespace"]&&(i["x-attribsNamespace"]={...e["x-attribsNamespace"]}),e["x-attribsPrefix"]&&(i["x-attribsPrefix"]={...e["x-attribsPrefix"]}),n=i}else if(C(e)){const r=t?D(e.children):[],i=new g(r);r.forEach(e=>e.parent=i),n=i}else if(O(e)){const r=t?D(e.children):[],i=new v(r);r.forEach(e=>e.parent=i),e["x-mode"]&&(i["x-mode"]=e["x-mode"]),n=i}else{if(!I(e))throw new Error("Not implemented yet: "+e.type);{const t=new T(e.name,e.data);null!=e["x-name"]&&(t["x-name"]=e["x-name"],t["x-publicId"]=e["x-publicId"],t["x-systemId"]=e["x-systemId"]),n=t}}return n.startIndex=e.startIndex,n.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(n.sourceCodeLocation=e.sourceCodeLocation),n}function D(e){var t=e.map(e=>L(e,!0));for(let e=1;e$\x80-\uFFFF]/g,M=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]),P=null!=String.prototype.codePointAt?(e,t)=>e.codePointAt(t):(e,t)=>55296==(64512&e.charCodeAt(t))?1024*(e.charCodeAt(t)-55296)+e.charCodeAt(t+1)-56320+65536:e.charCodeAt(t);function B(e){let t,n="",r=0;for(;null!==(t=x.exec(e));){var i=t.index,s=e.charCodeAt(i),a=M.get(s);r=void 0!==a?(n+=e.substring(r,i)+a,i+1):(n+=`${e.substring(r,i)}&#x${P(e,i).toString(16)};`,x.lastIndex+=Number(55296==(64512&s)))}return n+e.substr(r)}function F(e,t){return function(n){let r,i=0,s="";for(;r=e.exec(n);)i!==r.index&&(s+=n.substring(i,r.index)),s+=t.get(r[0].charCodeAt(0)),i=r.index+1;return s+n.substring(i)}}const U=F(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),H=F(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]])),G=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(e=>[e.toLowerCase(),e])),j=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(e=>[e.toLowerCase(),e])),q=new Set(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]);function Y(e){return e.replace(/"/g,""")}const K=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]);function W(e,t={}){var n="length"in e?e:[e];let r="";for(let e=0;e`;case c:return``;case f:return``;case u:case l:case h:return function(e,t){!(t="foreign"===t.xmlMode&&(e.name=null!=(n=G.get(e.name))?n:e.name,e.parent)&&$.has(e.parent.name)?{...t,xmlMode:!1}:t).xmlMode&&Q.has(e.name)&&(t={...t,xmlMode:"foreign"});let r="<"+e.name;var n=function(e,t){var n;if(e){const r=!1===(null!=(n=t.encodeEntities)?n:t.decodeEntities)?Y:t.xmlMode||"utf8"!==t.encodeEntities?B:U;return Object.keys(e).map(n=>{var s,i=null!=(i=e[n])?i:"";return"foreign"===t.xmlMode&&(n=null!=(s=j.get(n))?s:n),t.emptyAttrs||t.xmlMode||""!==i?`${n}="${r(i)}"`:n}).join(" ")}}(e.attribs,t);return n&&(r+=" "+n),0===e.children.length&&(t.xmlMode?!1!==t.selfClosingTags:t.selfClosingTags&&K.has(e.name))?(t.xmlMode||(r+=" "),r+="/>"):(r+=">",0`)),r}(e,t);case a:return function(e,t){var n;let r=e.data||"";return r=!1===(null!=(n=t.encodeEntities)?n:t.decodeEntities)||!t.xmlMode&&e.parent&&q.has(e.parent.name)?r:(t.xmlMode||"utf8"!==t.encodeEntities?B:H)(r)}(e,t)}}const $=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),Q=new Set(["svg","math"]);function z(e,t){return W(e,t)}function X(e){return Array.isArray(e)?e.map(X).join(""):k(e)&&!b(e)?X(e.children):N(e)?e.data:""}function Z(t){return Array.isArray(t)?t.map(Z).join(""):k(t)&&(t.type===e.Tag||C(t))?Z(t.children):N(t)?t.data:""}function J(e){return k(e)?e.children:[]}function ee(e){return e.parent||null}function te(e){var t=ee(e);if(null!=t)return J(t);var n=[e];let{prev:r,next:i}=e;for(;null!=r;)n.unshift(r),{prev:r}=r;for(;null!=i;)n.push(i),{next:i}=i;return n}function ne(e){let t=e["next"];for(;null!==t&&!S(t);)({next:t}=t);return t}function re(e){let t=e["prev"];for(;null!==t&&!S(t);)({prev:t}=t);return t}function ie(e){var t,n;e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent&&0<=(n=(t=e.parent.children).lastIndexOf(e))&&t.splice(n,1),e.next=null,e.prev=null,e.parent=null}function se(e,t,n=!0,r=1/0){return ae(e,Array.isArray(t)?t:[t],n,r)}function ae(e,t,n,r){for(var i=[],s=[t],a=[0];;)if(a[0]>=s[0].length){if(1===a.length)return i;s.shift(),a.shift()}else{const t=s[0][a[0]++];if(e(t)&&(i.push(t),--r<=0))return i;n&&k(t)&&0"function"==typeof e?t=>S(t)&&e(t.name):"*"===e?S:t=>S(t)&&t.name===e,tag_type:e=>"function"==typeof e?t=>e(t.type):t=>t.type===e,tag_contains:e=>"function"==typeof e?t=>N(t)&&e(t.data):t=>N(t)&&t.data===e};function ue(e,t){return"function"==typeof t?n=>S(n)&&t(n.attribs[e]):n=>S(n)&&n.attribs[e]===t}function le(e,t){return n=>e(n)||t(n)}function he(e){var t=Object.keys(e).map(t=>{var n=e[t];return Object.prototype.hasOwnProperty.call(ce,t)?ce[t](n):ue(t,n)});return 0===t.length?null:t.reduce(le)}function fe(e,t,n=!0,r=1/0){return se(ce.tag_name(e),t,n,r)}function de(e,t){var n=[],r=[];if(e===t)return 0;let i=k(e)?e:e.parent;for(;i;)n.unshift(i),i=i.parent;for(i=k(t)?t:t.parent;i;)r.unshift(i),i=i.parent;var o,c,u,l,s=Math.min(n.length,r.length);let a=0;for(;ac.indexOf(l)?o===t?pe.FOLLOWING|pe.CONTAINED_BY:pe.FOLLOWING:o===e?pe.PRECEDING|pe.CONTAINS:pe.PRECEDING)}function me(e){return(e=e.filter((e,t,n)=>!n.includes(e,t+1))).sort((e,t)=>{e=de(e,t);return e&pe.PRECEDING?-1:e&pe.FOLLOWING?1:0}),e}!function(e){e[e.DISCONNECTED=1]="DISCONNECTED",e[e.PRECEDING=2]="PRECEDING",e[e.FOLLOWING=4]="FOLLOWING",e[e.CONTAINS=8]="CONTAINS",e[e.CONTAINED_BY=16]="CONTAINED_BY"}(pe=pe||{});const _e=["url","type","lang"],Ee=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];function Te(e){return fe("media:content",e).map(e=>{var t=e["attribs"],n={medium:t.medium,isDefault:!!t.isDefault};for(const e of _e)t[e]&&(n[e]=t[e]);for(const e of Ee)t[e]&&(n[e]=parseInt(t[e],10));return t.expression&&(n.expression=t.expression),n})}function Ae(e,t){return fe(e,t,!0,1)[0]}function ge(e,t,n=!1){return X(fe(e,t,n,1)).trim()}function ve(e,t,n,r,i=!1){n=ge(n,r,i);n&&(e[t]=n)}function ye(e){return"rss"===e||"feed"===e||"rdf:RDF"===e}var Se=Object.freeze({__proto__:null,isTag:S,isCDATA:C,isText:N,isComment:b,isDocument:O,hasChildren:k,getOuterHTML:z,getInnerHTML:function(e,t){return k(e)?e.children.map(e=>z(e,t)).join(""):""},getText:function e(t){return Array.isArray(t)?t.map(e).join(""):S(t)?"br"===t.name?"\n":e(t.children):C(t)?e(t.children):N(t)?t.data:""},textContent:X,innerText:Z,getChildren:J,getParent:ee,getSiblings:te,getAttributeValue:function(e,t){return null==(e=e.attribs)?void 0:e[t]},hasAttrib:function(e,t){return null!=e.attribs&&Object.prototype.hasOwnProperty.call(e.attribs,t)&&null!=e.attribs[t]},getName:function(e){return e.name},nextElementSibling:ne,prevElementSibling:re,removeElement:ie,replaceElement:function(e,t){const n=t.prev=e.prev;n&&(n.next=t);var r=t.next=e.next,r=(r&&(r.prev=t),t.parent=e.parent);if(r){const n=r.children;n[n.lastIndexOf(e)]=t,e.parent=null}},appendChild:function(e,t){ie(t),t.next=null,1<(t.parent=e).children.push(t)?((e=e.children[e.children.length-2]).next=t).prev=e:t.prev=null},append:function(e,t){ie(t);var n=e["parent"],r=e.next;if(t.next=r,((t.prev=e).next=t).parent=n,r){if(r.prev=t,n){const e=n.children;e.splice(e.lastIndexOf(r),0,t)}}else n&&n.children.push(t)},prependChild:function(e,t){ie(t),t.parent=e,t.prev=null,1!==e.children.unshift(t)?((e=e.children[1]).prev=t).next=e:t.next=null},prepend:function(e,t){ie(t);var r,n=e["parent"];n&&(r=n.children).splice(r.indexOf(e),0,t),e.prev&&(e.prev.next=t),t.parent=n,t.prev=e.prev,(t.next=e).prev=t},filter:se,find:ae,findOneChild:function(e,t){return t.find(e)},findOne:oe,existsOne:function e(t,n){return n.some(n=>S(n)&&(t(n)||e(t,n.children)))},findAll:function(e,t){for(var n=[],r=[t],i=[0];;)if(i[0]>=r[0].length){if(1===r.length)return n;r.shift(),i.shift()}else{const t=r[0][i[0]++];S(t)&&(e(t)&&n.push(t),0{var e=e["children"],r={media:Te(e)},t=(ve(r,"id","id",e),ve(r,"title","title",e),null==(t=Ae("link",e))?void 0:t.attribs.href),t=(t&&(r.link=t),ge("summary",e)||ge("content",e)),t=(t&&(r.description=t),ge("updated",e));return t&&(r.pubDate=new Date(t)),r})},t=(ve(r,"id","id",e),ve(r,"title","title",e),null==(t=Ae("link",e))?void 0:t.attribs.href),t=(t&&(r.link=t),ve(r,"description","subtitle",e),ge("updated",e));return t&&(r.updated=new Date(t)),ve(r,"author","email",e,!0),r}:function(e){var t=null!=(t=null==(t=Ae("channel",e.children))?void 0:t.children)?t:[],e={type:e.name.substr(0,3),id:"",items:fe("item",e.children).map(e=>{var e=e["children"],n={media:Te(e)},e=(ve(n,"id","guid",e),ve(n,"title","title",e),ve(n,"link","link",e),ve(n,"description","description",e),ge("pubDate",e)||ge("dc:date",e));return e&&(n.pubDate=new Date(e)),n})},s=(ve(e,"title","title",t),ve(e,"link","link",t),ve(e,"description","description",t),ge("lastBuildDate",t));return s&&(e.updated=new Date(s)),ve(e,"author","managingEditor",t,!0),e})(e):null}}),Ce=function(){return(Ce=Object.assign||function(e){for(var t,n=1,r=arguments.length;ne.length-3)&&((n=e.charCodeAt(t+1))>=xe.LowerA&&n<=xe.LowerZ||n>=xe.UpperA&&n<=xe.UpperZ||n===xe.Exclamation)&&e.includes(">",t+2)}!function(e){e[e.LowerA=97]="LowerA",e[e.LowerZ=122]="LowerZ",e[e.UpperA=65]="UpperA",e[e.UpperZ=90]="UpperZ",e[e.Exclamation=33]="Exclamation"}(xe=xe||{});var He=Object.prototype.hasOwnProperty,Ge=/\s+/,je="data-",qe={null:null,true:!0,false:!1},Ye=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,Ke=/^{[^]*}$|^\[[^]*]$/;function We(e,t,n){if(e&&S(e))return null==e.attribs&&(e.attribs={}),t?He.call(e.attribs,t)?!n&&Ye.test(t)?t:e.attribs[t]:"option"===e.name&&"value"===t?Oe(e.children):"input"!==e.name||"radio"!==e.attribs.type&&"checkbox"!==e.attribs.type||"value"!==t?void 0:"on":e.attribs}function Ve(e,t,n){null===n?Ze(e,t):e.attribs[t]="".concat(n)}function $e(e,t,n){return t in e?e[t]:!n&&Ye.test(t)?void 0!==We(e,t,!1):We(e,t,n)}function Qe(e,t,n,r){t in e?e[t]=n:Ve(e,t,!r&&Ye.test(t)?n?"":null:"".concat(n))}function ze(e,t,n){null==e.data&&(e.data={}),"object"==typeof t?Object.assign(e.data,t):"string"==typeof t&&void 0!==n&&(e.data[t]=n)}function Xe(e,t){for(var n,i,r=null==t?(n=Object.keys(e.attribs).filter(function(e){return e.startsWith(je)})).map(function(e){return e.slice(je.length).replace(/[_.-](\w|$)/g,function(e,t){return t.toUpperCase()})}):(n=[je+t.replace(/[A-Z]/g,"-$&").toLowerCase()],[t]),a=0;a").parent().html();case"innerHTML":return this.html();default:return $e(i,e,this.options.xmlMode)}}if("object"==typeof e||void 0!==t){if("function"!=typeof t)return Be(this,function(n){S(n)&&("object"==typeof e?Object.keys(e).forEach(function(t){var i=e[t];Qe(n,t,i,r.options.xmlMode)}):Qe(n,e,t,r.options.xmlMode))});if("object"==typeof e)throw new Error("Bad combination of arguments.");return Be(this,function(n,i){S(n)&&Qe(n,e,t.call(n,i,$e(n,e,r.options.xmlMode)),r.options.xmlMode)})}},data:function(e,t){var r=this[0];if(r&&S(r))return null==(r=r).data&&(r.data={}),e?"object"==typeof e||void 0!==t?(Be(this,function(n){S(n)&&("object"==typeof e?ze(n,e):ze(n,e,t))}),this):He.call(r.data,e)?r.data[e]:Xe(r,e):Xe(r)},val:function(e){var t=0===arguments.length,n=this[0];if(!n||!S(n))return t?void 0:this;switch(n.name){case"textarea":return this.text(e);case"select":var r=this.find("option:selected");if(t)return this.attr("multiple")?r.toArray().map(function(e){return Oe(e.children)}):r.attr("value");if(null!=this.attr("multiple")||"object"!=typeof e){this.find("option").removeAttr("selected");for(var i="object"!=typeof e?[e]:e,s=0;s>10|55296,1023&r|56320)}function lt(e){return e.replace(it,ut)}function ht(e){return 39===e||34===e}function ft(e){return 32===e||9===e||10===e||12===e||13===e}function pt(e){var t=[],n=dt(t,""+e,0);if(n>=1)):e.type===et.Pseudo&&(e.data?"has"===e.name||"contains"===e.name?r=0:Array.isArray(e.data)?(r=Math.min(...e.data.map(e=>Math.min(...e.map(vt)))))<0&&(r=0):r=2:r=3),r}const yt=/[-[\]{}()*+?.,\\^$|#\s]/g;function St(e){return e.replace(yt,"\\$&")}const Ct=new Set(["accept","accept-charset","align","alink","axis","bgcolor","charset","checked","clear","codetype","color","compact","declare","defer","dir","direction","disabled","enctype","face","frame","hreflang","http-equiv","lang","language","link","media","method","multiple","nohref","noresize","noshade","nowrap","readonly","rel","rev","rules","scope","scrolling","selected","shape","target","text","type","valign","valuetype","vlink"]);function Nt(e,t){return"boolean"==typeof e.ignoreCase?e.ignoreCase:"quirks"===e.ignoreCase?!!t.quirksMode:!t.xmlMode&&Ct.has(e.name)}const bt={equals(e,t,n){const r=n["adapter"],i=t["name"];let s=t["value"];return Nt(t,n)?(s=s.toLowerCase(),t=>{var n=r.getAttributeValue(t,i);return null!=n&&n.length===s.length&&n.toLowerCase()===s&&e(t)}):t=>r.getAttributeValue(t,i)===s&&e(t)},hyphen(e,t,n){const r=n["adapter"],i=t["name"];let s=t["value"];const a=s.length;return Nt(t,n)?(s=s.toLowerCase(),function(t){var n=r.getAttributeValue(t,i);return null!=n&&(n.length===a||"-"===n.charAt(a))&&n.substr(0,a).toLowerCase()===s&&e(t)}):function(t){var n=r.getAttributeValue(t,i);return null!=n&&(n.length===a||"-"===n.charAt(a))&&n.substr(0,a)===s&&e(t)}},element(e,t,n){const r=n["adapter"],{name:i,value:s}=t;if(/\s/.test(s))return mt.falseFunc;const a=new RegExp(`(?:^|\\s)${St(s)}(?:$|\\s)`,Nt(t,n)?"i":"");return function(t){var n=r.getAttributeValue(t,i);return null!=n&&n.length>=s.length&&a.test(n)&&e(t)}},exists:(e,{name:t},{adapter:n})=>r=>n.hasAttrib(r,t)&&e(r),start(e,t,n){const r=n["adapter"],i=t["name"];let s=t["value"];const a=s.length;return 0===a?mt.falseFunc:Nt(t,n)?(s=s.toLowerCase(),t=>{var n=r.getAttributeValue(t,i);return null!=n&&n.length>=a&&n.substr(0,a).toLowerCase()===s&&e(t)}):t=>{var n;return!(null==(n=r.getAttributeValue(t,i))||!n.startsWith(s))&&e(t)}},end(e,t,n){const r=n["adapter"],i=t["name"];let s=t["value"];const a=-s.length;return 0==a?mt.falseFunc:Nt(t,n)?(s=s.toLowerCase(),t=>{var n;return(null==(n=r.getAttributeValue(t,i))?void 0:n.substr(a).toLowerCase())===s&&e(t)}):t=>{var n;return!(null==(n=r.getAttributeValue(t,i))||!n.endsWith(s))&&e(t)}},any(e,t,n){const r=n["adapter"],{name:i,value:s}=t;if(""===s)return mt.falseFunc;if(Nt(t,n)){const t=new RegExp(St(s),"i");return function(n){var a=r.getAttributeValue(n,i);return null!=a&&a.length>=s.length&&t.test(a)&&e(n)}}return t=>{var n;return!(null==(n=r.getAttributeValue(t,i))||!n.includes(s))&&e(t)}},not(e,t,n){const r=n["adapter"],i=t["name"];let s=t["value"];return""===s?t=>!!r.getAttributeValue(t,i)&&e(t):Nt(t,n)?(s=s.toLowerCase(),t=>{var n=r.getAttributeValue(t,i);return(null==n||n.length!==s.length||n.toLowerCase()!==s)&&e(t)}):t=>r.getAttributeValue(t,i)!==s&&e(t)}},It=new Set([9,10,12,13,32]),Ot="0".charCodeAt(0),kt="9".charCodeAt(0);function Lt(e){return function(e){const t=e[0],n=e[1]-1;if(n<0&&t<=0)return mt.falseFunc;if(-1===t)return e=>e<=n;if(0===t)return e=>e===n;if(1===t)return n<0?mt.trueFunc:e=>e>=n;const r=Math.abs(t),i=(n%r+r)%r;return 1e>=n&&e%r==i:e=>e<=n&&e%r==i}(function(e){if("even"===(e=e.trim().toLowerCase()))return[2,0];if("odd"===e)return[2,1];let t=0,n=0,r=s(),i=a();if(t=Ot&&e.charCodeAt(t)<=kt;)r=10*r+(e.charCodeAt(t)-Ot),t++;return t===n?null:r}function o(){for(;t{var r=t.getParent(n);return null!=r&&t.isTag(r)&&e(n)}}const Rt={contains:(e,t,{adapter:n})=>function(r){return e(r)&&n.getText(r).includes(t)},icontains(e,t,{adapter:n}){const r=t.toLowerCase();return function(t){return e(t)&&n.getText(t).toLowerCase().includes(r)}},"nth-child"(e,t,{adapter:n,equals:r}){const i=Lt(t);return i===mt.falseFunc?mt.falseFunc:i===mt.trueFunc?Dt(e,n):function(t){var s=n.getSiblings(t);let a=0;for(let e=0;et=>{var r=n.getParent(t);return(null==r||!n.isTag(r))&&e(t)},scope(e,t,n,r){const i=n["equals"];return r&&0!==r.length?1===r.length?t=>i(r[0],t)&&e(t):t=>r.includes(t)&&e(t):Rt.root(e,t,n)},hover:wt("isHovered"),visited:wt("isVisited"),active:wt("isActive")};function wt(e){return function(t,n,{adapter:r}){const i=r[e];return"function"!=typeof i?mt.falseFunc:function(e){return i(e)&&t(e)}}}const xt={empty:(e,{adapter:t})=>!t.getChildren(e).some(e=>t.isTag(e)||""!==t.getText(e)),"first-child"(e,{adapter:t,equals:n}){var r;return t.prevElementSibling?null==t.prevElementSibling(e):null!=(r=t.getSiblings(e).find(e=>t.isTag(e)))&&n(e,r)},"last-child"(e,{adapter:t,equals:n}){var r=t.getSiblings(e);for(let i=r.length-1;0<=i;i--){if(n(e,r[i]))return!0;if(t.isTag(r[i]))break}return!1},"first-of-type"(e,{adapter:t,equals:n}){var r=t.getSiblings(e),i=t.getName(e);for(let s=0;sn(e,i)||!t.isTag(i)||t.getName(i)!==r)},"only-child":(e,{adapter:t,equals:n})=>t.getSiblings(e).every(r=>n(e,r)||!t.isTag(r))};function Mt(e,t,n,r){if(null===n){if(e.length>r)throw new Error(`Pseudo-class :${t} requires an argument`)}else if(e.length===r)throw new Error(`Pseudo-class :${t} doesn't have any arguments`)}const Pt={"any-link":":is(a, area, link)[href]",link:":any-link:not(:visited)",disabled:":is(\n :is(button, input, select, textarea, optgroup, option)[disabled],\n optgroup[disabled] > option,\n fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)\n )",enabled:":not(:disabled)",checked:":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)",required:":is(input, select, textarea)[required]",optional:":is(input, select, textarea):not([required])",selected:"option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)",checkbox:"[type=checkbox]",file:"[type=file]",password:"[type=password]",radio:"[type=radio]",reset:"[type=reset]",image:"[type=image]",submit:"[type=submit]",parent:":not(:empty)",header:":is(h1, h2, h3, h4, h5, h6)",button:":is(button, input[type=button])",input:":is(input, textarea, select, button)",text:"input:is(:not([type!='']), [type=text])"},Bt={};function Ft(e,t){var n=t.getSiblings(e);return n.length<=1||(e=n.indexOf(e))<0||e===n.length-1?[]:n.slice(e+1).filter(t.isTag)}function Ut(e){return{xmlMode:!!e.xmlMode,lowerCaseAttributeNames:!!e.lowerCaseAttributeNames,lowerCaseTags:!!e.lowerCaseTags,quirksMode:!!e.quirksMode,cacheResults:!!e.cacheResults,pseudos:e.pseudos,adapter:e.adapter,equals:e.equals}}const Ht=(e,t,n,r,i)=>{const s=i(t,Ut(n),r);return s===mt.trueFunc?e:s===mt.falseFunc?mt.falseFunc:t=>s(t)&&e(t)},Gt={is:Ht,matches:Ht,where:Ht,not(e,t,n,r,i){const s=i(t,Ut(n),r);return s===mt.falseFunc?e:s===mt.trueFunc?mt.falseFunc:t=>!s(t)&&e(t)},has(e,t,n,r,i){const s=n["adapter"],a=Ut(n),o=(a.relativeSelector=!0,t.some(e=>e.some(Tt))?[Bt]:void 0),c=i(t,a,o);if(c===mt.falseFunc)return mt.falseFunc;const u=function(e,t){return e===mt.falseFunc?mt.falseFunc:n=>t.isTag(n)&&e(n)}(c,s);if(o&&c!==mt.trueFunc){const{shouldTestNextSiblings:t=!1}=c;return n=>{if(!e(n))return!1;o[0]=n;var r=s.getChildren(n),n=t?[...r,...Ft(n,s)]:r;return s.existsOne(u,n)}}return t=>e(t)&&s.existsOne(u,s.getChildren(t))}};function jt(e,t){e=t.getParent(e);return e&&t.isTag(e)?e:null}function qt(e,t,n,r,i){const{adapter:s,equals:a}=n;switch(t.type){case et.PseudoElement:throw new Error("Pseudo-elements are not supported by css-select");case et.ColumnCombinator:throw new Error("Column combinators are not yet supported by css-select");case et.Attribute:if(null!=t.namespace)throw new Error("Namespaced attributes are not yet supported by css-select");return n.xmlMode&&!n.lowerCaseAttributeNames||(t.name=t.name.toLowerCase()),bt[t.action](e,t,n);case et.Pseudo:return function(e,t,n,r,i){const{name:a,data:o}=t;if(Array.isArray(o)){if(a in Gt)return Gt[a](e,o,n,r,i);throw new Error(`Unknown pseudo-class :${a}(${o})`)}const c=null==(t=n.pseudos)?void 0:t[a],u="string"==typeof c?c:Pt[a];if("string"==typeof u){if(null!=o)throw new Error(`Pseudo ${a} doesn't have any arguments`);const t=pt(u);return Gt.is(e,t,n,r,i)}if("function"==typeof c)return Mt(c,a,o,1),t=>c(t,o)&&e(t);if(a in Rt)return Rt[a](e,o,n,r);if(a in xt){const t=xt[a];return Mt(t,a,o,2),r=>t(r,n,o)&&e(r)}throw new Error("Unknown pseudo-class :"+a)}(e,t,n,r,i);case et.Tag:{if(null!=t.namespace)throw new Error("Namespaced tag names are not yet supported by css-select");let r=t["name"];return n.xmlMode&&!n.lowerCaseTags||(r=r.toLowerCase()),function(t){return s.getName(t)===r&&e(t)}}case et.Descendant:{if(!1===n.cacheResults||"undefined"==typeof WeakSet)return function(t){let n=t;for(;n=jt(n,s);)if(e(n))return!0;return!1};const t=new WeakSet;return function(n){let r=n;for(;r=jt(r,s);)if(!t.has(r)){if(s.isTag(r)&&e(r))return!0;t.add(r)}return!1}}case"_flexibleDescendant":return function(t){let n=t;do{if(e(n))return!0}while(n=jt(n,s));return!1};case et.Parent:return function(t){return s.getChildren(t).some(t=>s.isTag(t)&&e(t))};case et.Child:return function(t){t=s.getParent(t);return null!=t&&s.isTag(t)&&e(t)};case et.Sibling:return function(t){var n=s.getSiblings(t);for(let r=0;re.some(Yt)))}const Kt={type:et.Descendant},Wt={type:"_flexibleDescendant"},Vt={type:et.Pseudo,name:"scope",data:null};function $t(e,t,n){e.forEach(gt),n=null!=(r=t.context)?r:n;const i=Array.isArray(n),s=n&&(Array.isArray(n)?n:[n]);if(!1!==t.relativeSelector)!function(e,{adapter:t},n){var r=!(null==n||!n.every(e=>{var n=t.isTag(e)&&t.getParent(e);return e===Bt||n&&t.isTag(n)}));for(const t of e){if(!(00{if(2<=e.length){const[t,n]=e;t.type===et.Pseudo&&"scope"===t.name&&(i&&n.type===et.Descendant?e[1]=Wt:n.type!==et.Adjacent&&n.type!==et.Sibling||(a=!0))}return function(e,t,n){return e.reduce((e,r)=>e===mt.falseFunc?mt.falseFunc:qt(e,r,t,n,$t),null!=(e=t.rootFunc)?e:mt.trueFunc)}(e,t,s)}).reduce(Qt,mt.falseFunc);return r.shouldTestNextSiblings=a,r}function Qt(e,t){return t===mt.falseFunc||e===mt.trueFunc?e:e===mt.falseFunc||t===mt.trueFunc?t:function(n){return e(n)||t(n)}}const zt=(e,t)=>e===t,Xt={adapter:Se,equals:zt},Zt=(Jt=$t,function(e,t,n){t=function(e){var r,e=null!=e?e:Xt;return null==e.adapter&&(e.adapter=Se),null==e.equals&&(e.equals=null!=(r=null==(r=e.adapter)?void 0:r.equals)?r:zt),e}(t);return Jt(e,t,n)});function en(e,t,n=!1){return n&&(e=function(e,t){const n=Array.isArray(e)?e.slice(0):[e],r=n.length;for(let e=0;ee.some(nn)))}function rn(e){var t=[],n=[];for(const r of e)(r.some(nn)?t:n).push(r);return[n,t]}const sn={type:et.Universal,namespace:null},an={type:et.Pseudo,name:"scope",data:null};function on(e,t,n={}){return cn([e],t,n)}function cn(e,t,n={}){var i;return"function"==typeof t?e.some(t):([t,i]=rn(pt(t)),00S(e)&&!s.has(e)):t;if(0===a.length)break;var o=hn(r,t,n);if(o.length)if(s)o.forEach(e=>s.add(e));else{if(e===i.length-1)return o;s=new Set(o)}}return void 0!==s?s.size===t.length?t:t.filter(e=>s.has(e)):[]}function hn(e,t,n){var r,s;return e.some(ot)?(r=null!=(r=n.root)?r:function(e){for(;e.parent;)e=e.parent;return e}(t[0]),s={...n,context:t,relativeSelector:!1},e.push(an),fn(r,e,s,!0,t.length)):fn(t,e,n,!1,t.length)}function fn(e,t,n,r,i){var s=t.findIndex(nn),a=t.slice(0,s),o=t[s],c=t.length-1===s?i:1/0,c=function(e,t,n){var r=null!=t?parseInt(t,10):NaN;switch(e){case"first":return 1;case"nth":case"eq":return isFinite(r)?0<=r?r+1:1/0:0;case"lt":return isFinite(r)?0<=r?Math.min(r,n):1/0:0;case"gt":return isFinite(r)?1/0:0;case"odd":return 2*n;case"even":return 2*n-1;case"last":case"not":return 1/0}}(o.name,o.data,c);if(0===c)return[];r=(0!==a.length||Array.isArray(e)?0===a.length?(Array.isArray(e)?e:[e]).filter(S):r||a.some(ot)?pn(e,[a],n,c):mn(e,[a],n):J(e).filter(S)).slice(0,c);let h=function(e,t,n,r){var i="string"==typeof n?parseInt(n,10):NaN;switch(e){case"first":case"lt":return t;case"last":return 0t%2==0);case"odd":return t.filter((e,t)=>t%2==1);case"not":{const e=new Set(ln(n,t,r));return t.filter(t=>!e.has(t))}}}(o.name,r,o.data,n);if(0===h.length||t.length===s+1)return h;a=t.slice(s+1),e=a.some(ot);if(e){if(ot(a[0])){const e=a[0]["type"];e!==et.Sibling&&e!==et.Adjacent||(h=en(h,Se,!0)),a.unshift(sn)}n={...n,relativeSelector:!1,rootFunc:e=>h.includes(e)}}else n.rootFunc&&n.rootFunc!==_t&&(n={...n,rootFunc:_t});return a.some(nn)?fn(h,a,n,!1,i):e?pn(h,[a],n,i):mn(h,[a],n)}function pn(e,t,n,r){return dn(e,Zt(t,n,e),r)}function dn(e,t,n=1/0){return ae(e=>S(e)&&t(e),en(e,Se,t.shouldTestNextSiblings),!0,n)}function mn(e,t,n){e=(Array.isArray(e)?e:[e]).filter(S);return 0===e.length||(t=Zt(t,n))===_t?e:e.filter(t)}var _n=function(e,t,n){if(n||2===arguments.length)for(var r,i=0,s=t.length;ifn(t,e,n,!0,1/0)),e.length&&s.push(pn(t,e,n,1/0)),0===s.length?[]:1===s.length?s[0]:me(s.reduce((e,t)=>[...e,...t])))}(e,r,t)))):this._make([])},parent:Sn,parents:Cn,parentsUntil:Nn,closest:function(e){var t,r,i,n=[];return e&&(r={xmlMode:this.options.xmlMode,root:null==(t=this._root)?void 0:t[0]},i="string"==typeof e?function(t){return on(t,e,r)}:xn(e),Be(this,function(e){for(;e&&S(e);){if(i(e,0)){n.includes(e)||n.push(e);break}e=e.parent}})),this._make(n)},next:bn,nextAll:In,nextUntil:On,prev:kn,prevAll:Ln,prevUntil:Dn,siblings:Rn,children:wn,contents:function(){var e=this.toArray().reduce(function(e,t){return k(t)?e.concat(t.children):e},[]);return this._make(e)},each:function(e){for(var t=0,n=this.length;t=e.length?null:e[t+n],l=0;lthis.bufferWaterline}dropParsedChunk(){this.willDropParsedChunk()&&(this.html=this.html.substring(this.pos),this.lineStartPos-=this.pos,this.droppedBufferSize+=this.pos,this.pos=0,this.lastGapPos=-2,this.gapStack.length=0)}write(e,t){0this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,!1;if(t)return this.html.startsWith(e,this.pos);for(let t=0;t=this.html.length?(this.endOfChunkHit=!this.lastChunkWritten,ar.EOF):(e=this.html.charCodeAt(e))===ar.CARRIAGE_RETURN?ar.LINE_FEED:e}advance(){if(this.pos++,this.isEol&&(this.isEol=!1,this.line++,this.lineStartPos=this.pos),this.pos>=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,ar.EOF;let e=this.html.charCodeAt(this.pos);return e===ar.CARRIAGE_RETURN?(this.isEol=!0,this.skipNextNewLine=!0,ar.LINE_FEED):e===ar.LINE_FEED&&(this.isEol=!0,this.skipNextNewLine)?(this.line--,this.skipNextNewLine=!1,this._addGap(),this.advance()):(this.skipNextNewLine=!1,pr(e)&&(e=this._processSurrogate(e)),null===this.handler.onParseError||31䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(function(e){return e.charCodeAt(0)}))}),Nr=(yr(Cr),Sr(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=new Uint16Array("Ȁaglq\tɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(function(e){return e.charCodeAt(0)}))})),br=(yr(Nr),Sr(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.replaceCodePoint=t.fromCodePoint=void 0;var n,r=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);function i(e){var t;return 55296<=e&&e<=57343||1114111>>10&1023|55296),e=56320|1023&e),t+String.fromCharCode(e)},t.replaceCodePoint=i,t.default=function(e){return(0,t.fromCodePoint)(i(e))}})),Ir=(yr(br),br.replaceCodePoint,br.fromCodePoint,Cr),Or=Nr,kr=br,Lr=Sr(function(e,t){var n=gr&&gr.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){e[r=void 0===r?n:r]=t[n]}),r=gr&&gr.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=gr&&gr.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return r(t,e),t},s=gr&&gr.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},a=(Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXML=t.decodeHTMLStrict=t.decodeHTMLAttribute=t.decodeHTML=t.determineBranch=t.EntityDecoder=t.DecodingMode=t.BinTrieFlags=t.fromCodePoint=t.replaceCodePoint=t.decodeCodePoint=t.xmlDecodeTree=t.htmlDecodeTree=void 0,s(Ir)),s=(t.htmlDecodeTree=a.default,s(Or)),c=(t.xmlDecodeTree=s.default,i(kr));t.decodeCodePoint=c.default;var u,h,f,p,l=kr;function d(e){return e>=u.ZERO&&e<=u.NINE}Object.defineProperty(t,"replaceCodePoint",{enumerable:!0,get:function(){return l.replaceCodePoint}}),Object.defineProperty(t,"fromCodePoint",{enumerable:!0,get:function(){return l.fromCodePoint}}),function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"}(u=u||{}),function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"}(h=t.BinTrieFlags||(t.BinTrieFlags={})),function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"}(f=f||{}),function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"}(p=t.DecodingMode||(t.DecodingMode={}));var _=function(){function e(e,t,n){this.decodeTree=e,this.emitCodePoint=t,this.errors=n,this.state=f.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=p.Strict}return e.prototype.startEntity=function(e){this.decodeMode=e,this.state=f.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1},e.prototype.write=function(e,t){switch(this.state){case f.EntityStart:return e.charCodeAt(t)===u.NUM?(this.state=f.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=f.NamedEntity,this.stateNamedEntity(e,t));case f.NumericStart:return this.stateNumericStart(e,t);case f.NumericDecimal:return this.stateNumericDecimal(e,t);case f.NumericHex:return this.stateNumericHex(e,t);case f.NamedEntity:return this.stateNamedEntity(e,t)}},e.prototype.stateNumericStart=function(e,t){return t>=e.length?-1:(32|e.charCodeAt(t))===u.LOWER_X?(this.state=f.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=f.NumericDecimal,this.stateNumericDecimal(e,t))},e.prototype.addToNumericResult=function(e,t,n,r){t!==n&&(n=n-t,this.result=this.result*Math.pow(r,n)+parseInt(e.substr(t,n),r),this.consumed+=n)},e.prototype.stateNumericHex=function(e,t){for(var n,r=t;t=u.UPPER_A&&n<=u.UPPER_F||n>=u.LOWER_A&&n<=u.LOWER_F))return this.addToNumericResult(e,r,t,16),this.emitNumericEntity(i,3);t+=1}return this.addToNumericResult(e,r,t,16),-1},e.prototype.stateNumericDecimal=function(e,t){for(var n=t;t>14;t=u.UPPER_A&&e<=u.UPPER_Z||e>=u.LOWER_A&&e<=u.LOWER_Z||d(e)}(e)}(s))?0:this.emitNotTerminatedNamedEntity();if(0!=(i=((r=n[this.treeIndex])&h.VALUE_LENGTH)>>14)){if(s===u.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==p.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1},e.prototype.emitNotTerminatedNamedEntity=function(){var t=this.result,n=(this.decodeTree[t]&h.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,n,this.consumed),null!=(t=this.errors)&&t.missingSemicolonAfterCharacterReference(),this.consumed},e.prototype.emitNamedEntityData=function(e,t,n){var r=this.decodeTree;return this.emitCodePoint(1===t?r[e]&~h.VALUE_LENGTH:r[e+1],n),3===t&&this.emitCodePoint(r[e+2],n),n},e.prototype.end=function(){var e;switch(this.state){case f.NamedEntity:return 0===this.result||this.decodeMode===p.Attribute&&this.result!==this.treeIndex?0:this.emitNotTerminatedNamedEntity();case f.NumericDecimal:return this.emitNumericEntity(0,2);case f.NumericHex:return this.emitNumericEntity(0,3);case f.NumericStart:return null!=(e=this.errors)&&e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case f.EntityStart:return 0}},e}();function E(e){var t="",n=new _(e,function(e){return t+=(0,c.fromCodePoint)(e)});return function(e,r){for(var i=0,s=0;0<=(s=e.indexOf("&",s));){t+=e.slice(i,s),n.startEntity(r);var a=n.write(e,s+1);if(a<0){i=s+n.end();break}i=s+a,s=0===a?i+1:i}var o=t+e.slice(i);return t="",o}}function T(e,t,n,r){var i=(t&h.BRANCH_LENGTH)>>7,t=t&h.JUMP_TABLE;if(0==i)return 0!=t&&r===t?n:-1;if(t)return(t=r-t)<0||i<=t?-1:e[n+t]-1;for(var o=n,c=o+i-1;o<=c;){var u=o+c>>>1,l=e[u];if(l=ar.DIGIT_0&&e<=ar.DIGIT_9}function Zr(e){return e>=ar.LATIN_CAPITAL_A&&e<=ar.LATIN_CAPITAL_Z}function Jr(e){return function(e){return e>=ar.LATIN_SMALL_A&&e<=ar.LATIN_SMALL_Z}(e)||Zr(e)}function ei(e){return Jr(e)||Xr(e)}function ti(e){return e>=ar.LATIN_CAPITAL_A&&e<=ar.LATIN_CAPITAL_F}function ni(e){return e>=ar.LATIN_SMALL_A&&e<=ar.LATIN_SMALL_F}function ri(e){return e+32}function ii(e){return e===ar.SPACE||e===ar.LINE_FEED||e===ar.TABULATION||e===ar.FORM_FEED}function si(e){return ii(e)||e===ar.SOLIDUS||e===ar.GREATER_THAN_SIGN}class ai{constructor(e,t){this.options=e,this.handler=t,this.paused=!1,this.inLoop=!1,this.inForeignNode=!1,this.lastStartTagName="",this.active=!1,this.state=Qr.DATA,this.returnState=Qr.DATA,this.charRefCode=-1,this.consumedAfterSnapshot=-1,this.currentCharacterToken=null,this.currentToken=null,this.currentAttr={name:"",value:""},this.preprocessor=new Er(t),this.currentLocation=this.getCurrentLocation(-1)}_err(e){var t,n;null!=(n=(t=this.handler).onParseError)&&n.call(t,this.preprocessor.getError(e))}getCurrentLocation(e){return this.options.sourceCodeLocationInfo?{startLine:this.preprocessor.line,startCol:this.preprocessor.col-e,startOffset:this.preprocessor.offset-e,endLine:-1,endCol:-1,endOffset:-1}:null}_runParsingLoop(){if(!this.inLoop){for(this.inLoop=!0;this.active&&!this.paused;){this.consumedAfterSnapshot=0;var e=this._consume();this._ensureHibernation()||this._callState(e)}this.inLoop=!1}}pause(){this.paused=!0}resume(e){if(!this.paused)throw new Error("Parser was already resumed");this.paused=!1,this.inLoop||(this._runParsingLoop(),this.paused)||null==e||e()}write(e,t,n){this.active=!0,this.preprocessor.write(e,t),this._runParsingLoop(),this.paused||null==n||n()}insertHtmlAtCurrentPos(e){this.active=!0,this.preprocessor.insertHtmlAtCurrentPos(e),this._runParsingLoop()}_ensureHibernation(){return!!this.preprocessor.endOfChunkHit&&(this._unconsume(this.consumedAfterSnapshot),!(this.active=!1))}_consume(){return this.consumedAfterSnapshot++,this.preprocessor.advance()}_unconsume(e){this.consumedAfterSnapshot-=e,this.preprocessor.retreat(e)}_reconsumeInState(e,t){this.state=e,this._callState(t)}_advanceBy(e){this.consumedAfterSnapshot+=e;for(let t=0;t>14)-1;if(e!==ar.SEMICOLON&&this._isCharacterReferenceInAttribute()&&((o=this.preprocessor.peek(1))===ar.EQUALS_SIGN||ei(o))?(t=[ar.AMPERSAND],s+=a):(t=0==a?[Gr[s]&~Rr.VALUE_LENGTH]:1==a?[Gr[++s]]:[Gr[++s],Gr[++s]],n=0,r=e!==ar.SEMICOLON),0==a){this._consume();break}}}return this._unconsume(n),r&&!this.preprocessor.endOfChunkHit&&this._err(_r.missingSemicolonAfterCharacterReference),this._unconsume(1),t}_isCharacterReferenceInAttribute(){return this.returnState===Qr.ATTRIBUTE_VALUE_DOUBLE_QUOTED||this.returnState===Qr.ATTRIBUTE_VALUE_SINGLE_QUOTED||this.returnState===Qr.ATTRIBUTE_VALUE_UNQUOTED}_flushCodePointConsumedAsCharacterReference(e){this._isCharacterReferenceInAttribute()?this.currentAttr.value+=String.fromCodePoint(e):this._emitCodePoint(e)}_callState(e){switch(this.state){case Qr.DATA:this._stateData(e);break;case Qr.RCDATA:this._stateRcdata(e);break;case Qr.RAWTEXT:this._stateRawtext(e);break;case Qr.SCRIPT_DATA:this._stateScriptData(e);break;case Qr.PLAINTEXT:this._statePlaintext(e);break;case Qr.TAG_OPEN:this._stateTagOpen(e);break;case Qr.END_TAG_OPEN:this._stateEndTagOpen(e);break;case Qr.TAG_NAME:this._stateTagName(e);break;case Qr.RCDATA_LESS_THAN_SIGN:this._stateRcdataLessThanSign(e);break;case Qr.RCDATA_END_TAG_OPEN:this._stateRcdataEndTagOpen(e);break;case Qr.RCDATA_END_TAG_NAME:this._stateRcdataEndTagName(e);break;case Qr.RAWTEXT_LESS_THAN_SIGN:this._stateRawtextLessThanSign(e);break;case Qr.RAWTEXT_END_TAG_OPEN:this._stateRawtextEndTagOpen(e);break;case Qr.RAWTEXT_END_TAG_NAME:this._stateRawtextEndTagName(e);break;case Qr.SCRIPT_DATA_LESS_THAN_SIGN:this._stateScriptDataLessThanSign(e);break;case Qr.SCRIPT_DATA_END_TAG_OPEN:this._stateScriptDataEndTagOpen(e);break;case Qr.SCRIPT_DATA_END_TAG_NAME:this._stateScriptDataEndTagName(e);break;case Qr.SCRIPT_DATA_ESCAPE_START:this._stateScriptDataEscapeStart(e);break;case Qr.SCRIPT_DATA_ESCAPE_START_DASH:this._stateScriptDataEscapeStartDash(e);break;case Qr.SCRIPT_DATA_ESCAPED:this._stateScriptDataEscaped(e);break;case Qr.SCRIPT_DATA_ESCAPED_DASH:this._stateScriptDataEscapedDash(e);break;case Qr.SCRIPT_DATA_ESCAPED_DASH_DASH:this._stateScriptDataEscapedDashDash(e);break;case Qr.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN:this._stateScriptDataEscapedLessThanSign(e);break;case Qr.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:this._stateScriptDataEscapedEndTagOpen(e);break;case Qr.SCRIPT_DATA_ESCAPED_END_TAG_NAME:this._stateScriptDataEscapedEndTagName(e);break;case Qr.SCRIPT_DATA_DOUBLE_ESCAPE_START:this._stateScriptDataDoubleEscapeStart(e);break;case Qr.SCRIPT_DATA_DOUBLE_ESCAPED:this._stateScriptDataDoubleEscaped(e);break;case Qr.SCRIPT_DATA_DOUBLE_ESCAPED_DASH:this._stateScriptDataDoubleEscapedDash(e);break;case Qr.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH:this._stateScriptDataDoubleEscapedDashDash(e);break;case Qr.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN:this._stateScriptDataDoubleEscapedLessThanSign(e);break;case Qr.SCRIPT_DATA_DOUBLE_ESCAPE_END:this._stateScriptDataDoubleEscapeEnd(e);break;case Qr.BEFORE_ATTRIBUTE_NAME:this._stateBeforeAttributeName(e);break;case Qr.ATTRIBUTE_NAME:this._stateAttributeName(e);break;case Qr.AFTER_ATTRIBUTE_NAME:this._stateAfterAttributeName(e);break;case Qr.BEFORE_ATTRIBUTE_VALUE:this._stateBeforeAttributeValue(e);break;case Qr.ATTRIBUTE_VALUE_DOUBLE_QUOTED:this._stateAttributeValueDoubleQuoted(e);break;case Qr.ATTRIBUTE_VALUE_SINGLE_QUOTED:this._stateAttributeValueSingleQuoted(e);break;case Qr.ATTRIBUTE_VALUE_UNQUOTED:this._stateAttributeValueUnquoted(e);break;case Qr.AFTER_ATTRIBUTE_VALUE_QUOTED:this._stateAfterAttributeValueQuoted(e);break;case Qr.SELF_CLOSING_START_TAG:this._stateSelfClosingStartTag(e);break;case Qr.BOGUS_COMMENT:this._stateBogusComment(e);break;case Qr.MARKUP_DECLARATION_OPEN:this._stateMarkupDeclarationOpen(e);break;case Qr.COMMENT_START:this._stateCommentStart(e);break;case Qr.COMMENT_START_DASH:this._stateCommentStartDash(e);break;case Qr.COMMENT:this._stateComment(e);break;case Qr.COMMENT_LESS_THAN_SIGN:this._stateCommentLessThanSign(e);break;case Qr.COMMENT_LESS_THAN_SIGN_BANG:this._stateCommentLessThanSignBang(e);break;case Qr.COMMENT_LESS_THAN_SIGN_BANG_DASH:this._stateCommentLessThanSignBangDash(e);break;case Qr.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH:this._stateCommentLessThanSignBangDashDash(e);break;case Qr.COMMENT_END_DASH:this._stateCommentEndDash(e);break;case Qr.COMMENT_END:this._stateCommentEnd(e);break;case Qr.COMMENT_END_BANG:this._stateCommentEndBang(e);break;case Qr.DOCTYPE:this._stateDoctype(e);break;case Qr.BEFORE_DOCTYPE_NAME:this._stateBeforeDoctypeName(e);break;case Qr.DOCTYPE_NAME:this._stateDoctypeName(e);break;case Qr.AFTER_DOCTYPE_NAME:this._stateAfterDoctypeName(e);break;case Qr.AFTER_DOCTYPE_PUBLIC_KEYWORD:this._stateAfterDoctypePublicKeyword(e);break;case Qr.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER:this._stateBeforeDoctypePublicIdentifier(e);break;case Qr.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED:this._stateDoctypePublicIdentifierDoubleQuoted(e);break;case Qr.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED:this._stateDoctypePublicIdentifierSingleQuoted(e);break;case Qr.AFTER_DOCTYPE_PUBLIC_IDENTIFIER:this._stateAfterDoctypePublicIdentifier(e);break;case Qr.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS:this._stateBetweenDoctypePublicAndSystemIdentifiers(e);break;case Qr.AFTER_DOCTYPE_SYSTEM_KEYWORD:this._stateAfterDoctypeSystemKeyword(e);break;case Qr.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER:this._stateBeforeDoctypeSystemIdentifier(e);break;case Qr.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED:this._stateDoctypeSystemIdentifierDoubleQuoted(e);break;case Qr.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED:this._stateDoctypeSystemIdentifierSingleQuoted(e);break;case Qr.AFTER_DOCTYPE_SYSTEM_IDENTIFIER:this._stateAfterDoctypeSystemIdentifier(e);break;case Qr.BOGUS_DOCTYPE:this._stateBogusDoctype(e);break;case Qr.CDATA_SECTION:this._stateCdataSection(e);break;case Qr.CDATA_SECTION_BRACKET:this._stateCdataSectionBracket(e);break;case Qr.CDATA_SECTION_END:this._stateCdataSectionEnd(e);break;case Qr.CHARACTER_REFERENCE:this._stateCharacterReference(e);break;case Qr.NAMED_CHARACTER_REFERENCE:this._stateNamedCharacterReference(e);break;case Qr.AMBIGUOUS_AMPERSAND:this._stateAmbiguousAmpersand(e);break;case Qr.NUMERIC_CHARACTER_REFERENCE:this._stateNumericCharacterReference(e);break;case Qr.HEXADEMICAL_CHARACTER_REFERENCE_START:this._stateHexademicalCharacterReferenceStart(e);break;case Qr.HEXADEMICAL_CHARACTER_REFERENCE:this._stateHexademicalCharacterReference(e);break;case Qr.DECIMAL_CHARACTER_REFERENCE:this._stateDecimalCharacterReference(e);break;case Qr.NUMERIC_CHARACTER_REFERENCE_END:this._stateNumericCharacterReferenceEnd(e);break;default:throw new Error("Unknown state")}}_stateData(e){switch(e){case ar.LESS_THAN_SIGN:this.state=Qr.TAG_OPEN;break;case ar.AMPERSAND:this.returnState=Qr.DATA,this.state=Qr.CHARACTER_REFERENCE;break;case ar.NULL:this._err(_r.unexpectedNullCharacter),this._emitCodePoint(e);break;case ar.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e)}}_stateRcdata(e){switch(e){case ar.AMPERSAND:this.returnState=Qr.RCDATA,this.state=Qr.CHARACTER_REFERENCE;break;case ar.LESS_THAN_SIGN:this.state=Qr.RCDATA_LESS_THAN_SIGN;break;case ar.NULL:this._err(_r.unexpectedNullCharacter),this._emitChars(sr);break;case ar.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e)}}_stateRawtext(e){switch(e){case ar.LESS_THAN_SIGN:this.state=Qr.RAWTEXT_LESS_THAN_SIGN;break;case ar.NULL:this._err(_r.unexpectedNullCharacter),this._emitChars(sr);break;case ar.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e)}}_stateScriptData(e){switch(e){case ar.LESS_THAN_SIGN:this.state=Qr.SCRIPT_DATA_LESS_THAN_SIGN;break;case ar.NULL:this._err(_r.unexpectedNullCharacter),this._emitChars(sr);break;case ar.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e)}}_statePlaintext(e){switch(e){case ar.NULL:this._err(_r.unexpectedNullCharacter),this._emitChars(sr);break;case ar.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e)}}_stateTagOpen(e){if(Jr(e))this._createStartTagToken(),this.state=Qr.TAG_NAME,this._stateTagName(e);else switch(e){case ar.EXCLAMATION_MARK:this.state=Qr.MARKUP_DECLARATION_OPEN;break;case ar.SOLIDUS:this.state=Qr.END_TAG_OPEN;break;case ar.QUESTION_MARK:this._err(_r.unexpectedQuestionMarkInsteadOfTagName),this._createCommentToken(1),this.state=Qr.BOGUS_COMMENT,this._stateBogusComment(e);break;case ar.EOF:this._err(_r.eofBeforeTagName),this._emitChars("<"),this._emitEOFToken();break;default:this._err(_r.invalidFirstCharacterOfTagName),this._emitChars("<"),this.state=Qr.DATA,this._stateData(e)}}_stateEndTagOpen(e){if(Jr(e))this._createEndTagToken(),this.state=Qr.TAG_NAME,this._stateTagName(e);else switch(e){case ar.GREATER_THAN_SIGN:this._err(_r.missingEndTagName),this.state=Qr.DATA;break;case ar.EOF:this._err(_r.eofBeforeTagName),this._emitChars("");break;case ar.NULL:this._err(_r.unexpectedNullCharacter),this.state=Qr.SCRIPT_DATA_ESCAPED,this._emitChars(sr);break;case ar.EOF:this._err(_r.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break;default:this.state=Qr.SCRIPT_DATA_ESCAPED,this._emitCodePoint(e)}}_stateScriptDataEscapedLessThanSign(e){e===ar.SOLIDUS?this.state=Qr.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:Jr(e)?(this._emitChars("<"),this.state=Qr.SCRIPT_DATA_DOUBLE_ESCAPE_START,this._stateScriptDataDoubleEscapeStart(e)):(this._emitChars("<"),this.state=Qr.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(e))}_stateScriptDataEscapedEndTagOpen(e){Jr(e)?(this.state=Qr.SCRIPT_DATA_ESCAPED_END_TAG_NAME,this._stateScriptDataEscapedEndTagName(e)):(this._emitChars("");break;case ar.NULL:this._err(_r.unexpectedNullCharacter),this.state=Qr.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitChars(sr);break;case ar.EOF:this._err(_r.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break;default:this.state=Qr.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitCodePoint(e)}}_stateScriptDataDoubleEscapedLessThanSign(e){e===ar.SOLIDUS?(this.state=Qr.SCRIPT_DATA_DOUBLE_ESCAPE_END,this._emitChars("/")):(this.state=Qr.SCRIPT_DATA_DOUBLE_ESCAPED,this._stateScriptDataDoubleEscaped(e))}_stateScriptDataDoubleEscapeEnd(e){if(this.preprocessor.startsWith(lr,!1)&&si(this.preprocessor.peek(lr.length))){this._emitCodePoint(e);for(let e=0;e=e;){var t=this.current;0[e.name,e.value]));let i=0;for(let e=0;er.get(e.name)===e.value)&&3<=(i+=1)&&this.entries.splice(t.idx,1)}}}}insertMarker(){this.entries.unshift(Ei)}pushElement(e,t){this._ensureNoahArkCondition(e),this.entries.unshift({type:_i.Element,element:e,token:t})}insertElementAfterBookmark(e,t){var n=this.entries.indexOf(this.bookmark);this.entries.splice(n,0,{type:_i.Element,element:e,token:t})}removeEntry(e){e=this.entries.indexOf(e);0<=e&&this.entries.splice(e,1)}clearToLastMarker(){var e=this.entries.indexOf(Ei);0<=e?this.entries.splice(0,e+1):this.entries.length=0}getElementEntryInScopeWithTagName(e){var t=this.entries.find(t=>t.type===_i.Marker||this.treeAdapter.getTagName(t.element)===e);return t&&t.type===_i.Element?t:null}getElementEntry(e){return this.entries.find(t=>t.type===_i.Element&&t.element===e)}}function Ai(e){return{nodeName:"#text",value:e,parentNode:null}}const gi={createDocument:()=>({nodeName:"#document",mode:Br.NO_QUIRKS,childNodes:[]}),createDocumentFragment:()=>({nodeName:"#document-fragment",childNodes:[]}),createElement:(e,t,n)=>({nodeName:e,tagName:e,attrs:n,namespaceURI:t,childNodes:[],parentNode:null}),createCommentNode:e=>({nodeName:"#comment",data:e,parentNode:null}),appendChild(e,t){e.childNodes.push(t),t.parentNode=e},insertBefore(e,t,n){n=e.childNodes.indexOf(n);e.childNodes.splice(n,0,t),t.parentNode=e},setTemplateContent(e,t){e.content=t},getTemplateContent:e=>e.content,setDocumentType(e,t,n,r){const i=e.childNodes.find(e=>"#documentType"===e.nodeName);if(i)i.name=t,i.publicId=n,i.systemId=r;else{const i={nodeName:"#documentType",name:t,publicId:n,systemId:r,parentNode:null};gi.appendChild(e,i)}},setDocumentMode(e,t){e.mode=t},getDocumentMode:e=>e.mode,detachNode(e){var t;e.parentNode&&(t=e.parentNode.childNodes.indexOf(e),e.parentNode.childNodes.splice(t,1),e.parentNode=null)},insertText(e,t){if(0e.name));for(let r=0;re.childNodes[0],getChildNodes:e=>e.childNodes,getParentNode:e=>e.parentNode,getAttrList:e=>e.attrs,getTagName:e=>e.tagName,getNamespaceURI:e=>e.namespaceURI,getTextNodeContent:e=>e.value,getCommentNodeContent:e=>e.data,getDocumentTypeNodeName:e=>e.name,getDocumentTypeNodePublicId:e=>e.publicId,getDocumentTypeNodeSystemId:e=>e.systemId,isTextNode:e=>"#text"===e.nodeName,isCommentNode:e=>"#comment"===e.nodeName,isDocumentTypeNode:e=>"#documentType"===e.nodeName,isElementNode:e=>Object.prototype.hasOwnProperty.call(e,"tagName"),setNodeSourceCodeLocation(e,t){e.sourceCodeLocation=t},getNodeSourceCodeLocation:e=>e.sourceCodeLocation,updateNodeSourceCodeLocation(e,t){e.sourceCodeLocation={...e.sourceCodeLocation,...t}}},vi="html",yi="about:legacy-compat",Si="http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd",Ci=["+//silmaril//dtd html pro v0r11 19970101//","-//as//dtd html 3.0 aswedit + extensions//","-//advasoft ltd//dtd html 3.0 aswedit + extensions//","-//ietf//dtd html 2.0 level 1//","-//ietf//dtd html 2.0 level 2//","-//ietf//dtd html 2.0 strict level 1//","-//ietf//dtd html 2.0 strict level 2//","-//ietf//dtd html 2.0 strict//","-//ietf//dtd html 2.0//","-//ietf//dtd html 2.1e//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.2 final//","-//ietf//dtd html 3.2//","-//ietf//dtd html 3//","-//ietf//dtd html level 0//","-//ietf//dtd html level 1//","-//ietf//dtd html level 2//","-//ietf//dtd html level 3//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict//","-//ietf//dtd html//","-//metrius//dtd metrius presentational//","-//microsoft//dtd internet explorer 2.0 html strict//","-//microsoft//dtd internet explorer 2.0 html//","-//microsoft//dtd internet explorer 2.0 tables//","-//microsoft//dtd internet explorer 3.0 html strict//","-//microsoft//dtd internet explorer 3.0 html//","-//microsoft//dtd internet explorer 3.0 tables//","-//netscape comm. corp.//dtd html//","-//netscape comm. corp.//dtd strict html//","-//o'reilly and associates//dtd html 2.0//","-//o'reilly and associates//dtd html extended 1.0//","-//o'reilly and associates//dtd html extended relaxed 1.0//","-//sq//dtd html 2.0 hotmetal + extensions//","-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//","-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//","-//spyglass//dtd html 2.0 extended//","-//sun microsystems corp.//dtd hotjava html//","-//sun microsystems corp.//dtd hotjava strict html//","-//w3c//dtd html 3 1995-03-24//","-//w3c//dtd html 3.2 draft//","-//w3c//dtd html 3.2 final//","-//w3c//dtd html 3.2//","-//w3c//dtd html 3.2s draft//","-//w3c//dtd html 4.0 frameset//","-//w3c//dtd html 4.0 transitional//","-//w3c//dtd html experimental 19960712//","-//w3c//dtd html experimental 970421//","-//w3c//dtd w3 html//","-//w3o//dtd w3 html 3.0//","-//webtechs//dtd mozilla html 2.0//","-//webtechs//dtd mozilla html//"],Ni=[...Ci,"-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"],bi=new Set(["-//w3o//dtd w3 html strict 3.0//en//","-/w3c/dtd html 4.0 transitional/en","html"]),Ii=["-//w3c//dtd xhtml 1.0 frameset//","-//w3c//dtd xhtml 1.0 transitional//"],Oi=[...Ii,"-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"];function ki(e,t){return t.some(t=>e.startsWith(t))}const Li={TEXT_HTML:"text/html",APPLICATION_XML:"application/xhtml+xml"},Di="definitionurl",Ri="definitionURL",wi=new Map(["attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(e=>[e.toLowerCase(),e])),xi=new Map([["xlink:actuate",{prefix:"xlink",name:"actuate",namespace:Mr.XLINK}],["xlink:arcrole",{prefix:"xlink",name:"arcrole",namespace:Mr.XLINK}],["xlink:href",{prefix:"xlink",name:"href",namespace:Mr.XLINK}],["xlink:role",{prefix:"xlink",name:"role",namespace:Mr.XLINK}],["xlink:show",{prefix:"xlink",name:"show",namespace:Mr.XLINK}],["xlink:title",{prefix:"xlink",name:"title",namespace:Mr.XLINK}],["xlink:type",{prefix:"xlink",name:"type",namespace:Mr.XLINK}],["xml:base",{prefix:"xml",name:"base",namespace:Mr.XML}],["xml:lang",{prefix:"xml",name:"lang",namespace:Mr.XML}],["xml:space",{prefix:"xml",name:"space",namespace:Mr.XML}],["xmlns",{prefix:"",name:"xmlns",namespace:Mr.XMLNS}],["xmlns:xlink",{prefix:"xmlns",name:"xlink",namespace:Mr.XMLNS}]]),Mi=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(e=>[e.toLowerCase(),e])),Pi=new Set([Ur.B,Ur.BIG,Ur.BLOCKQUOTE,Ur.BODY,Ur.BR,Ur.CENTER,Ur.CODE,Ur.DD,Ur.DIV,Ur.DL,Ur.DT,Ur.EM,Ur.EMBED,Ur.H1,Ur.H2,Ur.H3,Ur.H4,Ur.H5,Ur.H6,Ur.HEAD,Ur.HR,Ur.I,Ur.IMG,Ur.LI,Ur.LISTING,Ur.MENU,Ur.META,Ur.NOBR,Ur.OL,Ur.P,Ur.PRE,Ur.RUBY,Ur.S,Ur.SMALL,Ur.SPAN,Ur.STRONG,Ur.STRIKE,Ur.SUB,Ur.SUP,Ur.TABLE,Ur.TT,Ur.U,Ur.UL,Ur.VAR]);function Bi(e){for(let t=0;tthis.treeAdapter.isDocumentTypeNode(e));t&&this.treeAdapter.setNodeSourceCodeLocation(t,e.location)}}_attachElementToTree(e,t){if(this.options.sourceCodeLocationInfo&&(t=t&&{...t,startTag:t},this.treeAdapter.setNodeSourceCodeLocation(e,t)),this._shouldFosterParentOnInsertion())this._fosterParentElement(e);else{const t=this.openElements.currentTmplContentOrNode;this.treeAdapter.appendChild(t,e)}}_appendElement(e,t){t=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(t,e.location)}_insertElement(e,t){t=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(t,e.location),this.openElements.push(t,e.tagID)}_insertFakeElement(e,t){e=this.treeAdapter.createElement(e,Mr.HTML,[]);this._attachElementToTree(e,null),this.openElements.push(e,t)}_insertTemplate(e){var t=this.treeAdapter.createElement(e.tagName,Mr.HTML,e.attrs),n=this.treeAdapter.createDocumentFragment();this.treeAdapter.setTemplateContent(t,n),this._attachElementToTree(t,e.location),this.openElements.push(t,e.tagID),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(n,null)}_insertFakeRootElement(){var e=this.treeAdapter.createElement(Fr.HTML,Mr.HTML,[]);this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(e,null),this.treeAdapter.appendChild(this.openElements.current,e),this.openElements.push(e,Ur.HTML)}_appendCommentNode(e,t){var n=this.treeAdapter.createCommentNode(e.data);this.treeAdapter.appendChild(t,n),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(n,e.location)}_insertCharacters(e){let t,n;if(this._shouldFosterParentOnInsertion()?({parent:t,beforeElement:n}=this._findFosterParentingLocation(),n?this.treeAdapter.insertTextBefore(t,e.chars,n):this.treeAdapter.insertText(t,e.chars)):(t=this.openElements.currentTmplContentOrNode,this.treeAdapter.insertText(t,e.chars)),e.location){const r=this.treeAdapter.getChildNodes(t),i=n?r.lastIndexOf(n):r.length,s=r[i-1];if(this.treeAdapter.getNodeSourceCodeLocation(s)){const{endLine:t,endCol:n,endOffset:r}=e.location;this.treeAdapter.updateNodeSourceCodeLocation(s,{endLine:t,endCol:n,endOffset:r})}else this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(s,e.location)}}_adoptNodes(e,t){for(let n=this.treeAdapter.getFirstChild(e);n;n=this.treeAdapter.getFirstChild(e))this.treeAdapter.detachNode(n),this.treeAdapter.appendChild(t,n)}_setEndLocation(e,t){var n,r;this.treeAdapter.getNodeSourceCodeLocation(e)&&t.location&&(n=t.location,r=this.treeAdapter.getTagName(e),r=t.type===Tr.END_TAG&&r===t.tagName?{endTag:{...n},endLine:n.endLine,endCol:n.endCol,endOffset:n.endOffset}:{endLine:n.startLine,endCol:n.startCol,endOffset:n.startOffset},this.treeAdapter.updateNodeSourceCodeLocation(e,r))}shouldProcessStartTagTokenInForeignContent(e){if(!this.currentNotInHTML)return!1;let t,n;return 0===this.openElements.stackTop&&this.fragmentContext?(t=this.fragmentContext,n=this.fragmentContextID):{current:t,currentTagId:n}=this.openElements,(e.tagID!==Ur.SVG||this.treeAdapter.getTagName(t)!==Fr.ANNOTATION_XML||this.treeAdapter.getNamespaceURI(t)!==Mr.MATHML)&&(this.tokenizer.inForeignNode||(e.tagID===Ur.MGLYPH||e.tagID===Ur.MALIGNMARK)&&!this._isIntegrationPoint(n,t,Mr.HTML))}_processToken(e){switch(e.type){case Tr.CHARACTER:this.onCharacter(e);break;case Tr.NULL_CHARACTER:this.onNullCharacter(e);break;case Tr.COMMENT:this.onComment(e);break;case Tr.DOCTYPE:this.onDoctype(e);break;case Tr.START_TAG:this._processStartTag(e);break;case Tr.END_TAG:this.onEndTag(e);break;case Tr.EOF:this.onEof(e);break;case Tr.WHITESPACE_CHARACTER:this.onWhitespaceCharacter(e)}}_isIntegrationPoint(e,t,n){return Hi(e,this.treeAdapter.getNamespaceURI(t),this.treeAdapter.getAttrList(t),n)}_reconstructActiveFormattingElements(){const e=this.activeFormattingElements.entries.length;if(e){var t=this.activeFormattingElements.entries.findIndex(e=>e.type===_i.Marker||this.openElements.contains(e.element));for(let n=t<0?e-1:t-1;0<=n;n--){const e=this.activeFormattingElements.entries[n];this._insertElement(e.token,this.treeAdapter.getNamespaceURI(e.element)),e.element=this.openElements.current}}}_closeTableCell(){this.openElements.generateImpliedEndTags(),this.openElements.popUntilTableCellPopped(),this.activeFormattingElements.clearToLastMarker(),this.insertionMode=Yi.IN_ROW}_closePElement(){this.openElements.generateImpliedEndTagsWithExclusion(Ur.P),this.openElements.popUntilTagNamePopped(Ur.P)}_resetInsertionMode(){for(let e=this.openElements.stackTop;0<=e;e--)switch(0===e&&this.fragmentContext?this.fragmentContextID:this.openElements.tagIDs[e]){case Ur.TR:return void(this.insertionMode=Yi.IN_ROW);case Ur.TBODY:case Ur.THEAD:case Ur.TFOOT:return void(this.insertionMode=Yi.IN_TABLE_BODY);case Ur.CAPTION:return void(this.insertionMode=Yi.IN_CAPTION);case Ur.COLGROUP:return void(this.insertionMode=Yi.IN_COLUMN_GROUP);case Ur.TABLE:return void(this.insertionMode=Yi.IN_TABLE);case Ur.BODY:return void(this.insertionMode=Yi.IN_BODY);case Ur.FRAMESET:return void(this.insertionMode=Yi.IN_FRAMESET);case Ur.SELECT:return void this._resetInsertionModeForSelect(e);case Ur.TEMPLATE:return void(this.insertionMode=this.tmplInsertionModeStack[0]);case Ur.HTML:return void(this.insertionMode=this.headElement?Yi.AFTER_HEAD:Yi.BEFORE_HEAD);case Ur.TD:case Ur.TH:if(0e===Pr.COLOR||e===Pr.SIZE||e===Pr.FACE)||Pi.has(t)}(t)?(n=e._getAdjustedCurrentElement(),(n=e.treeAdapter.getNamespaceURI(n))===Mr.MATHML?Bi(t):n===Mr.SVG&&(function(e){var t=Mi.get(e.tagName);null!=t&&(e.tagName=t,e.tagID=qr(e.tagName))}(t),Fi(t)),Ui(t),t.selfClosing?e._appendElement(t,n):e._insertElement(t,n),t.ackSelfClosing=!0):(qs(e),e._startTagOutsideForeignContent(t))}(this,e):this._startTagOutsideForeignContent(e)}_startTagOutsideForeignContent(e){switch(this.insertionMode){case Yi.INITIAL:is(this,e);break;case Yi.BEFORE_HTML:!function(e,t){t.tagID===Ur.HTML?(e._insertElement(t,Mr.HTML),e.insertionMode=Yi.BEFORE_HEAD):ss(e,t)}(this,e);break;case Yi.BEFORE_HEAD:!function(e,t){switch(t.tagID){case Ur.HTML:As(e,t);break;case Ur.HEAD:e._insertElement(t,Mr.HTML),e.headElement=e.openElements.current,e.insertionMode=Yi.IN_HEAD;break;default:as(e,t)}}(this,e);break;case Yi.IN_HEAD:os(this,e);break;case Yi.IN_HEAD_NO_SCRIPT:!function(e,t){switch(t.tagID){case Ur.HTML:As(e,t);break;case Ur.BASEFONT:case Ur.BGSOUND:case Ur.HEAD:case Ur.LINK:case Ur.META:case Ur.NOFRAMES:case Ur.STYLE:os(e,t);break;case Ur.NOSCRIPT:e._err(t,_r.nestedNoscriptInHead);break;default:ls(e,t)}}(this,e);break;case Yi.AFTER_HEAD:!function(e,t){switch(t.tagID){case Ur.HTML:As(e,t);break;case Ur.BODY:e._insertElement(t,Mr.HTML),e.framesetOk=!1,e.insertionMode=Yi.IN_BODY;break;case Ur.FRAMESET:e._insertElement(t,Mr.HTML),e.insertionMode=Yi.IN_FRAMESET;break;case Ur.BASE:case Ur.BASEFONT:case Ur.BGSOUND:case Ur.LINK:case Ur.META:case Ur.NOFRAMES:case Ur.SCRIPT:case Ur.STYLE:case Ur.TEMPLATE:case Ur.TITLE:e._err(t,_r.abandonedHeadElementChild),e.openElements.push(e.headElement,Ur.HEAD),os(e,t),e.openElements.remove(e.headElement);break;case Ur.HEAD:e._err(t,_r.misplacedStartTagForHeadElement);break;default:hs(e,t)}}(this,e);break;case Yi.IN_BODY:As(this,e);break;case Yi.IN_TABLE:Cs(this,e);break;case Yi.IN_TABLE_TEXT:ks(this,e);break;case Yi.IN_CAPTION:!function(e,t){var n=t.tagID;Ls.has(n)?e.openElements.hasInTableScope(Ur.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(Ur.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=Yi.IN_TABLE,Cs(e,t)):As(e,t)}(this,e);break;case Yi.IN_COLUMN_GROUP:Ds(this,e);break;case Yi.IN_TABLE_BODY:ws(this,e);break;case Yi.IN_ROW:Ms(this,e);break;case Yi.IN_CELL:!function(e,t){var n=t.tagID;Ls.has(n)?(e.openElements.hasInTableScope(Ur.TD)||e.openElements.hasInTableScope(Ur.TH))&&(e._closeTableCell(),Ms(e,t)):As(e,t)}(this,e);break;case Yi.IN_SELECT:Bs(this,e);break;case Yi.IN_SELECT_IN_TABLE:!function(e,t){var n=t.tagID;n===Ur.CAPTION||n===Ur.TABLE||n===Ur.TBODY||n===Ur.TFOOT||n===Ur.THEAD||n===Ur.TR||n===Ur.TD||n===Ur.TH?(e.openElements.popUntilTagNamePopped(Ur.SELECT),e._resetInsertionMode(),e._processStartTag(t)):Bs(e,t)}(this,e);break;case Yi.IN_TEMPLATE:!function(e,t){switch(t.tagID){case Ur.BASE:case Ur.BASEFONT:case Ur.BGSOUND:case Ur.LINK:case Ur.META:case Ur.NOFRAMES:case Ur.SCRIPT:case Ur.STYLE:case Ur.TEMPLATE:case Ur.TITLE:os(e,t);break;case Ur.CAPTION:case Ur.COLGROUP:case Ur.TBODY:case Ur.TFOOT:case Ur.THEAD:e.tmplInsertionModeStack[0]=Yi.IN_TABLE,e.insertionMode=Yi.IN_TABLE,Cs(e,t);break;case Ur.COL:e.tmplInsertionModeStack[0]=Yi.IN_COLUMN_GROUP,e.insertionMode=Yi.IN_COLUMN_GROUP,Ds(e,t);break;case Ur.TR:e.tmplInsertionModeStack[0]=Yi.IN_TABLE_BODY,e.insertionMode=Yi.IN_TABLE_BODY,ws(e,t);break;case Ur.TD:case Ur.TH:e.tmplInsertionModeStack[0]=Yi.IN_ROW,e.insertionMode=Yi.IN_ROW,Ms(e,t);break;default:e.tmplInsertionModeStack[0]=Yi.IN_BODY,e.insertionMode=Yi.IN_BODY,As(e,t)}}(this,e);break;case Yi.AFTER_BODY:!function(e,t){(t.tagID===Ur.HTML?As:Gs)(e,t)}(this,e);break;case Yi.IN_FRAMESET:!function(e,t){switch(t.tagID){case Ur.HTML:As(e,t);break;case Ur.FRAMESET:e._insertElement(t,Mr.HTML);break;case Ur.FRAME:e._appendElement(t,Mr.HTML),t.ackSelfClosing=!0;break;case Ur.NOFRAMES:os(e,t)}}(this,e);break;case Yi.AFTER_FRAMESET:!function(e,t){switch(t.tagID){case Ur.HTML:As(e,t);break;case Ur.NOFRAMES:os(e,t)}}(this,e);break;case Yi.AFTER_AFTER_BODY:!function(e,t){(t.tagID===Ur.HTML?As:js)(e,t)}(this,e);break;case Yi.AFTER_AFTER_FRAMESET:!function(e,t){switch(t.tagID){case Ur.HTML:As(e,t);break;case Ur.NOFRAMES:os(e,t)}}(this,e)}}onEndTag(e){this.skipNextNewLine=!1,this.currentToken=e,this.currentNotInHTML?function(e,t){if(t.tagID===Ur.P||t.tagID===Ur.BR)return qs(e),e._endTagOutsideForeignContent(t);for(let n=e.openElements.stackTop;0=qi;!n||o?(o&&e.activeFormattingElements.removeEntry(n),e.openElements.remove(a)):(a=Zi(e,n),r===t&&(e.activeFormattingElements.bookmark=n),e.treeAdapter.detachNode(r),e.treeAdapter.appendChild(a,r),r=a)}return r}function Zi(e,t){var n=e.treeAdapter.getNamespaceURI(t.element),n=e.treeAdapter.createElement(t.token.tagName,n,t.token.attrs);return e.openElements.replace(t.element,n),t.element=n}function Ji(e,t,n){var i,r=qr(e.treeAdapter.getTagName(t));e._isElementCausesFosterParenting(r)?e._fosterParentElement(n):(i=e.treeAdapter.getNamespaceURI(t),r===Ur.TEMPLATE&&i===Mr.HTML&&(t=e.treeAdapter.getTemplateContent(t)),e.treeAdapter.appendChild(t,n))}function es(e,t,n){var r=e.treeAdapter.getNamespaceURI(n.element),i=n["token"],r=e.treeAdapter.createElement(i.tagName,r,i.attrs);e._adoptNodes(t,r),e.treeAdapter.appendChild(t,r),e.activeFormattingElements.insertElementAfterBookmark(r,i),e.activeFormattingElements.removeEntry(n),e.openElements.remove(n.element),e.openElements.insertAfter(t,r,i.tagID)}function ts(e,t){for(let n=0;n=n;r--)e._setEndLocation(e.openElements.items[r],t);if(!e.fragmentContext&&0<=e.openElements.stackTop){const n=e.openElements.items[0],r=e.treeAdapter.getNodeSourceCodeLocation(n);if(r&&!r.endTag&&(e._setEndLocation(n,t),1<=e.openElements.stackTop)){const n=e.openElements.items[1],r=e.treeAdapter.getNodeSourceCodeLocation(n);r&&!r.endTag&&e._setEndLocation(n,t)}}}}function is(e,t){e._err(t,_r.missingDoctype,!0),e.treeAdapter.setDocumentMode(e.document,Br.QUIRKS),e.insertionMode=Yi.BEFORE_HTML,e._processToken(t)}function ss(e,t){e._insertFakeRootElement(),e.insertionMode=Yi.BEFORE_HEAD,e._processToken(t)}function as(e,t){e._insertFakeElement(Fr.HEAD,Ur.HEAD),e.headElement=e.openElements.current,e.insertionMode=Yi.IN_HEAD,e._processToken(t)}function os(e,t){switch(t.tagID){case Ur.HTML:As(e,t);break;case Ur.BASE:case Ur.BASEFONT:case Ur.BGSOUND:case Ur.LINK:case Ur.META:e._appendElement(t,Mr.HTML),t.ackSelfClosing=!0;break;case Ur.TITLE:e._switchToTextParsing(t,zr.RCDATA);break;case Ur.NOSCRIPT:e.options.scriptingEnabled?e._switchToTextParsing(t,zr.RAWTEXT):(e._insertElement(t,Mr.HTML),e.insertionMode=Yi.IN_HEAD_NO_SCRIPT);break;case Ur.NOFRAMES:case Ur.STYLE:e._switchToTextParsing(t,zr.RAWTEXT);break;case Ur.SCRIPT:e._switchToTextParsing(t,zr.SCRIPT_DATA);break;case Ur.TEMPLATE:e._insertTemplate(t),e.activeFormattingElements.insertMarker(),e.framesetOk=!1,e.insertionMode=Yi.IN_TEMPLATE,e.tmplInsertionModeStack.unshift(Yi.IN_TEMPLATE);break;case Ur.HEAD:e._err(t,_r.misplacedStartTagForHeadElement);break;default:us(e,t)}}function cs(e,t){0=t&&e.openElements.shortenToLength(t);break}if(e._isSpecialElement(i,s))break}}function vs(e,t){switch(t.tagID){case Ur.A:case Ur.B:case Ur.I:case Ur.S:case Ur.U:case Ur.EM:case Ur.TT:case Ur.BIG:case Ur.CODE:case Ur.FONT:case Ur.NOBR:case Ur.SMALL:case Ur.STRIKE:case Ur.STRONG:ts(e,t);break;case Ur.P:!function(e){e.openElements.hasInButtonScope(Ur.P)||e._insertFakeElement(Fr.P,Ur.P),e._closePElement()}(e);break;case Ur.DL:case Ur.UL:case Ur.OL:case Ur.DIR:case Ur.DIV:case Ur.NAV:case Ur.PRE:case Ur.MAIN:case Ur.MENU:case Ur.ASIDE:case Ur.BUTTON:case Ur.CENTER:case Ur.FIGURE:case Ur.FOOTER:case Ur.HEADER:case Ur.HGROUP:case Ur.DIALOG:case Ur.ADDRESS:case Ur.ARTICLE:case Ur.DETAILS:case Ur.SECTION:case Ur.SUMMARY:case Ur.LISTING:case Ur.FIELDSET:case Ur.BLOCKQUOTE:case Ur.FIGCAPTION:!function(e,t){t=t.tagID;e.openElements.hasInScope(t)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(t))}(e,t);break;case Ur.LI:!function(e){e.openElements.hasInListItemScope(Ur.LI)&&(e.openElements.generateImpliedEndTagsWithExclusion(Ur.LI),e.openElements.popUntilTagNamePopped(Ur.LI))}(e);break;case Ur.DD:case Ur.DT:!function(e,t){t=t.tagID;e.openElements.hasInScope(t)&&(e.openElements.generateImpliedEndTagsWithExclusion(t),e.openElements.popUntilTagNamePopped(t))}(e,t);break;case Ur.H1:case Ur.H2:case Ur.H3:case Ur.H4:case Ur.H5:case Ur.H6:!function(e){e.openElements.hasNumberedHeaderInScope()&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilNumberedHeaderPopped())}(e);break;case Ur.BR:!function(e){e._reconstructActiveFormattingElements(),e._insertFakeElement(Fr.BR,Ur.BR),e.openElements.pop(),e.framesetOk=!1}(e);break;case Ur.BODY:!function(e,t){var n;e.openElements.hasInScope(Ur.BODY)&&(e.insertionMode=Yi.AFTER_BODY,e.options.sourceCodeLocationInfo)&&((n=e.openElements.tryPeekProperlyNestedBodyElement())&&e._setEndLocation(n,t))}(e,t);break;case Ur.HTML:!function(e,t){e.openElements.hasInScope(Ur.BODY)&&(e.insertionMode=Yi.AFTER_BODY,Hs(e,t))}(e,t);break;case Ur.FORM:!function(e){var t=0$\x80-\uFFFF]/g;var n=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]);function r(e){for(var i="",s=0;null!==(r=t.xmlReplacer.exec(e));)var r=r.index,o=e.charCodeAt(r),c=n.get(o),s=void 0!==c?(i+=e.substring(s,r)+c,r+1):(i+="".concat(e.substring(s,r),"&#x").concat((0,t.getCodePoint)(e,r).toString(16),";"),t.xmlReplacer.lastIndex+=Number(55296==(64512&o)));return i+e.substr(s)}function i(e,t){return function(n){for(var r,i=0,s="";r=e.exec(n);)i!==r.index&&(s+=n.substring(i,r.index)),s+=t.get(r[0].charCodeAt(0)),i=r.index+1;return s+n.substring(i)}}t.getCodePoint=null!=String.prototype.codePointAt?function(e,t){return e.codePointAt(t)}:function(e,t){return 55296==(64512&e.charCodeAt(t))?1024*(e.charCodeAt(t)-55296)+e.charCodeAt(t+1)-56320+65536:e.charCodeAt(t)},t.encodeXML=r,t.escape=r,t.escapeUTF8=i(/[&<>'"]/g,n),t.escapeAttribute=i(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),t.escapeText=i(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]))}),Ks=(yr(Ys),Ys.escapeText),Ws=Ys.escapeAttribute;Ys.escapeUTF8,Ys.escape,Ys.encodeXML,Ys.getCodePoint,Ys.xmlReplacer;const Vs=new Set([Fr.AREA,Fr.BASE,Fr.BASEFONT,Fr.BGSOUND,Fr.BR,Fr.COL,Fr.EMBED,Fr.FRAME,Fr.HR,Fr.IMG,Fr.INPUT,Fr.KEYGEN,Fr.LINK,Fr.META,Fr.PARAM,Fr.SOURCE,Fr.TRACK,Fr.WBR]),$s={treeAdapter:gi,scriptingEnabled:!0};function Qs(e,t){return zs(e,{...$s,...t})}function zs(e,t){return t.treeAdapter.isElementNode(e)?function(e,t){var n=t.treeAdapter.getTagName(e);return`<${n}${function(e,{treeAdapter:t}){let n="";for(const r of t.getAttrList(e)){if(n+=" ",r.namespace)switch(r.namespace){case Mr.XML:n+="xml:"+r.name;break;case Mr.XMLNS:"xmlns"!==r.name&&(n+="xmlns:"),n+=r.name;break;case Mr.XLINK:n+="xlink:"+r.name;break;default:n+=r.prefix+":"+r.name}else n+=r.name;n+=`="${Ws(r.value)}"`}return n}(e,t)}>`+(function(e,t){return t.treeAdapter.isElementNode(e)&&t.treeAdapter.getNamespaceURI(e)===Mr.HTML&&Vs.has(t.treeAdapter.getTagName(e))}(e,t)?"":function(e,t){let n="";var e=t.treeAdapter.isElementNode(e)&&t.treeAdapter.getTagName(e)===Fr.TEMPLATE&&t.treeAdapter.getNamespaceURI(e)===Mr.HTML?t.treeAdapter.getTemplateContent(e):e,i=t.treeAdapter.getChildNodes(e);if(i)for(const e of i)n+=zs(e,t);return n}(e,t)+``)}(e,t):t.treeAdapter.isTextNode(e)?function(e,t){var n=t["treeAdapter"],r=n.getTextNodeContent(e),e=n.getParentNode(e),s=e&&n.isElementNode(e)&&n.getTagName(e);return s&&n.getNamespaceURI(e)===Mr.HTML&&(n=s,e=t.scriptingEnabled,Vr.has(n)||e&&n===Fr.NOSCRIPT)?r:Ks(r)}(e,t):t.treeAdapter.isCommentNode(e)?function(e,{treeAdapter:t}){return``}(e,t):t.treeAdapter.isDocumentTypeNode(e)?function(e,{treeAdapter:t}){return``}(e,t):""}function Xs(e){return new _(e)}function Zs(e){var t=e.includes('"')?"'":'"';return t+e+t}const Js={isCommentNode:b,isElementNode:S,isTextNode:N,createDocument(){var e=new v([]);return e["x-mode"]=Br.NO_QUIRKS,e},createDocumentFragment:()=>new v([]),createElement(e,t,n){var r=Object.create(null),i=Object.create(null),s=Object.create(null);for(let e=0;enew E(e),appendChild(e,t){var n=e.children[e.children.length-1];n&&((n.next=t).prev=n),e.children.push(t),t.parent=e},insertBefore(e,t,n){var r=e.children.indexOf(n),i=n["prev"];i&&((i.next=t).prev=i),(n.prev=t).next=n,e.children.splice(r,0,t),t.parent=e},setTemplateContent(e,t){Js.appendChild(e,t)},getTemplateContent:e=>e.children[0],setDocumentType(e,t,n,r){var i=function(e,t,n){let r="!DOCTYPE ";return e&&(r+=e),t?r+=" PUBLIC "+Zs(t):n&&(r+=" SYSTEM"),n&&(r+=" "+Zs(n)),r}(t,n,r);let s=e.children.find(e=>I(e)&&"!doctype"===e.name);s?s.data=null!=i?i:null:(s=new T("!doctype",i),Js.appendChild(e,s)),s["x-name"]=null!=t?t:void 0,s["x-publicId"]=null!=n?n:void 0,s["x-systemId"]=null!=r?r:void 0},setDocumentMode(e,t){e["x-mode"]=t},getDocumentMode:e=>e["x-mode"],detachNode(e){var t,n,r;e.parent&&(t=e.parent.children.indexOf(e),{prev:n,next:r}=e,e.prev=null,e.next=null,n&&(n.next=r),r&&(r.prev=n),e.parent.children.splice(t,1),e.parent=null)},insertText(e,t){var n=e.children[e.children.length-1];n&&N(n)?n.data+=t:Js.appendChild(e,Xs(t))},insertTextBefore(e,t,n){var r=e.children[e.children.indexOf(n)-1];r&&N(r)?r.data+=t:Js.insertBefore(e,Xs(t),n)},adoptAttributes(e,t){for(let n=0;ne.children[0],getChildNodes:e=>e.children,getParentNode:e=>e.parent,getAttrList:e=>e.attributes,getTagName:e=>e.name,getNamespaceURI:e=>e.namespace,getTextNodeContent:e=>e.data,getCommentNodeContent:e=>e.data,getDocumentTypeNodeName(e){return null!=(e=e["x-name"])?e:""},getDocumentTypeNodePublicId(e){return null!=(e=e["x-publicId"])?e:""},getDocumentTypeNodeSystemId(e){return null!=(e=e["x-systemId"])?e:""},isDocumentTypeNode:e=>I(e)&&"!doctype"===e.name,setNodeSourceCodeLocation(e,t){t&&(e.startIndex=t.startOffset,e.endIndex=t.endOffset),e.sourceCodeLocation=t},getNodeSourceCodeLocation:e=>e.sourceCodeLocation,updateNodeSourceCodeLocation(e,t){null!=t.endOffset&&(e.endIndex=t.endOffset),e.sourceCodeLocation={...e.sourceCodeLocation,...t}}};var ea=function(e,t,n){if(n||2===arguments.length)for(var r,i=0,s=t.length;i=na.Zero&&e<=na.Nine}!function(e){e[e.Tab=9]="Tab",e[e.NewLine=10]="NewLine",e[e.FormFeed=12]="FormFeed",e[e.CarriageReturn=13]="CarriageReturn",e[e.Space=32]="Space",e[e.ExclamationMark=33]="ExclamationMark",e[e.Number=35]="Number",e[e.Amp=38]="Amp",e[e.SingleQuote=39]="SingleQuote",e[e.DoubleQuote=34]="DoubleQuote",e[e.Dash=45]="Dash",e[e.Slash=47]="Slash",e[e.Zero=48]="Zero",e[e.Nine=57]="Nine",e[e.Semi=59]="Semi",e[e.Lt=60]="Lt",e[e.Eq=61]="Eq",e[e.Gt=62]="Gt",e[e.Questionmark=63]="Questionmark",e[e.UpperA=65]="UpperA",e[e.LowerA=97]="LowerA",e[e.UpperF=70]="UpperF",e[e.LowerF=102]="LowerF",e[e.UpperZ=90]="UpperZ",e[e.LowerZ=122]="LowerZ",e[e.LowerX=120]="LowerX",e[e.OpeningSquareBracket=91]="OpeningSquareBracket"}(na=na||{}),function(e){e[e.Text=1]="Text",e[e.BeforeTagName=2]="BeforeTagName",e[e.InTagName=3]="InTagName",e[e.InSelfClosingTag=4]="InSelfClosingTag",e[e.BeforeClosingTagName=5]="BeforeClosingTagName",e[e.InClosingTagName=6]="InClosingTagName",e[e.AfterClosingTagName=7]="AfterClosingTagName",e[e.BeforeAttributeName=8]="BeforeAttributeName",e[e.InAttributeName=9]="InAttributeName",e[e.AfterAttributeName=10]="AfterAttributeName",e[e.BeforeAttributeValue=11]="BeforeAttributeValue",e[e.InAttributeValueDq=12]="InAttributeValueDq",e[e.InAttributeValueSq=13]="InAttributeValueSq",e[e.InAttributeValueNq=14]="InAttributeValueNq",e[e.BeforeDeclaration=15]="BeforeDeclaration",e[e.InDeclaration=16]="InDeclaration",e[e.InProcessingInstruction=17]="InProcessingInstruction",e[e.BeforeComment=18]="BeforeComment",e[e.CDATASequence=19]="CDATASequence",e[e.InSpecialComment=20]="InSpecialComment",e[e.InCommentLike=21]="InCommentLike",e[e.BeforeSpecialS=22]="BeforeSpecialS",e[e.SpecialStartSequence=23]="SpecialStartSequence",e[e.InSpecialTag=24]="InSpecialTag",e[e.BeforeEntity=25]="BeforeEntity",e[e.BeforeNumericEntity=26]="BeforeNumericEntity",e[e.InNamedEntity=27]="InNamedEntity",e[e.InNumericEntity=28]="InNumericEntity",e[e.InHexEntity=29]="InHexEntity"}(ra=ra||{}),function(e){e[e.NoValue=0]="NoValue",e[e.Unquoted=1]="Unquoted",e[e.Single=2]="Single",e[e.Double=3]="Double"}(ia=ia||{});const ua={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101])};class la{constructor({xmlMode:e=!1,decodeEntities:t=!0},n){this.cbs=n,this.state=ra.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=ra.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.trieIndex=0,this.trieCurrent=0,this.entityResult=0,this.entityExcess=0,this.xmlMode=e,this.decodeEntities=t,this.entityTrie=e?Hr:Gr}reset(){this.state=ra.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=ra.Text,this.currentSequence=void 0,this.running=!0,this.offset=0}write(e){this.offset+=this.buffer.length,this.buffer=e,this.parse()}end(){this.running&&this.finish()}pause(){this.running=!1}resume(){this.running=!0,this.indexthis.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=ra.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&e===na.Amp&&(this.state=ra.BeforeEntity)}stateSpecialStartSequence(e){var t=this.sequenceIndex===this.currentSequence.length;if(t?oa(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.isSpecial=!1;this.sequenceIndex=0,this.state=ra.InTagName,this.stateInTagName(e)}stateInSpecialTag(e){if(this.sequenceIndex===this.currentSequence.length){if(e===na.Gt||aa(e)){var t=this.index-this.currentSequence.length;if(this.sectionStart=na.LowerA&&e<=na.LowerZ||e>=na.UpperA&&e<=na.UpperZ}(e)}startSpecial(e,t){this.isSpecial=!0,this.currentSequence=e,this.sequenceIndex=t,this.state=ra.SpecialStartSequence}stateBeforeTagName(e){var t;e===na.ExclamationMark?(this.state=ra.BeforeDeclaration,this.sectionStart=this.index+1):e===na.Questionmark?(this.state=ra.InProcessingInstruction,this.sectionStart=this.index+1):this.isTagStartChar(e)?(t=32|e,this.sectionStart=this.index,this.xmlMode||t!==ua.TitleEnd[2]?this.state=this.xmlMode||t!==ua.ScriptEnd[2]?ra.InTagName:ra.BeforeSpecialS:this.startSpecial(ua.TitleEnd,3)):e===na.Slash?this.state=ra.BeforeClosingTagName:(this.state=ra.Text,this.stateText(e))}stateInTagName(e){oa(e)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=ra.BeforeAttributeName,this.stateBeforeAttributeName(e))}stateBeforeClosingTagName(e){aa(e)||(e===na.Gt?this.state=ra.Text:(this.state=this.isTagStartChar(e)?ra.InClosingTagName:ra.InSpecialComment,this.sectionStart=this.index))}stateInClosingTagName(e){e!==na.Gt&&!aa(e)||(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=ra.AfterClosingTagName,this.stateAfterClosingTagName(e))}stateAfterClosingTagName(e){e!==na.Gt&&!this.fastForwardTo(na.Gt)||(this.state=ra.Text,this.baseState=ra.Text,this.sectionStart=this.index+1)}stateBeforeAttributeName(e){e===na.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=ra.InSpecialTag,this.sequenceIndex=0):this.state=ra.Text,this.baseState=this.state,this.sectionStart=this.index+1):e===na.Slash?this.state=ra.InSelfClosingTag:aa(e)||(this.state=ra.InAttributeName,this.sectionStart=this.index)}stateInSelfClosingTag(e){e===na.Gt?(this.cbs.onselfclosingtag(this.index),this.state=ra.Text,this.baseState=ra.Text,this.sectionStart=this.index+1,this.isSpecial=!1):aa(e)||(this.state=ra.BeforeAttributeName,this.stateBeforeAttributeName(e))}stateInAttributeName(e){e!==na.Eq&&!oa(e)||(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=-1,this.state=ra.AfterAttributeName,this.stateAfterAttributeName(e))}stateAfterAttributeName(e){e===na.Eq?this.state=ra.BeforeAttributeValue:e===na.Slash||e===na.Gt?(this.cbs.onattribend(ia.NoValue,this.index),this.state=ra.BeforeAttributeName,this.stateBeforeAttributeName(e)):aa(e)||(this.cbs.onattribend(ia.NoValue,this.index),this.state=ra.InAttributeName,this.sectionStart=this.index)}stateBeforeAttributeValue(e){e===na.DoubleQuote?(this.state=ra.InAttributeValueDq,this.sectionStart=this.index+1):e===na.SingleQuote?(this.state=ra.InAttributeValueSq,this.sectionStart=this.index+1):aa(e)||(this.sectionStart=this.index,this.state=ra.InAttributeValueNq,this.stateInAttributeValueNoQuotes(e))}handleInAttributeValue(e,t){e===t||!this.decodeEntities&&this.fastForwardTo(t)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(t===na.DoubleQuote?ia.Double:ia.Single,this.index),this.state=ra.BeforeAttributeName):this.decodeEntities&&e===na.Amp&&(this.baseState=this.state,this.state=ra.BeforeEntity)}stateInAttributeValueDoubleQuotes(e){this.handleInAttributeValue(e,na.DoubleQuote)}stateInAttributeValueSingleQuotes(e){this.handleInAttributeValue(e,na.SingleQuote)}stateInAttributeValueNoQuotes(e){aa(e)||e===na.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(ia.Unquoted,this.index),this.state=ra.BeforeAttributeName,this.stateBeforeAttributeName(e)):this.decodeEntities&&e===na.Amp&&(this.baseState=this.state,this.state=ra.BeforeEntity)}stateBeforeDeclaration(e){e===na.OpeningSquareBracket?(this.state=ra.CDATASequence,this.sequenceIndex=0):this.state=e===na.Dash?ra.BeforeComment:ra.InDeclaration}stateInDeclaration(e){e!==na.Gt&&!this.fastForwardTo(na.Gt)||(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=ra.Text,this.sectionStart=this.index+1)}stateInProcessingInstruction(e){e!==na.Gt&&!this.fastForwardTo(na.Gt)||(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=ra.Text,this.sectionStart=this.index+1)}stateBeforeComment(e){e===na.Dash?(this.state=ra.InCommentLike,this.currentSequence=ua.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=ra.InDeclaration}stateInSpecialComment(e){e!==na.Gt&&!this.fastForwardTo(na.Gt)||(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=ra.Text,this.sectionStart=this.index+1)}stateBeforeSpecialS(e){var t=32|e;t===ua.ScriptEnd[3]?this.startSpecial(ua.ScriptEnd,4):t===ua.StyleEnd[3]?this.startSpecial(ua.StyleEnd,4):(this.state=ra.InTagName,this.stateInTagName(e))}stateBeforeEntity(e){this.entityExcess=1,this.entityResult=0,e===na.Number?this.state=ra.BeforeNumericEntity:e!==na.Amp&&(this.trieIndex=0,this.trieCurrent=this.entityTrie[0],this.state=ra.InNamedEntity,this.stateInNamedEntity(e))}stateInNamedEntity(e){if(this.entityExcess+=1,this.trieIndex=Dr(this.entityTrie,this.trieCurrent,this.trieIndex+1,e),this.trieIndex<0)this.emitNamedEntity(),this.index--;else{this.trieCurrent=this.entityTrie[this.trieIndex];var t=this.trieCurrent&Rr.VALUE_LENGTH;if(t){t=(t>>14)-1;if(this.allowLegacyEntity()||e===na.Semi){const e=this.index-this.entityExcess+1;e>this.sectionStart&&this.emitPartial(this.sectionStart,e),this.entityResult=this.trieIndex,this.trieIndex+=t,this.entityExcess=0,this.sectionStart=this.index+1,0==t&&this.emitNamedEntity()}else this.trieIndex+=t}}}emitNamedEntity(){if(this.state=this.baseState,0!==this.entityResult)switch((this.entityTrie[this.entityResult]&Rr.VALUE_LENGTH)>>14){case 1:this.emitCodePoint(this.entityTrie[this.entityResult]&~Rr.VALUE_LENGTH);break;case 2:this.emitCodePoint(this.entityTrie[this.entityResult+1]);break;case 3:this.emitCodePoint(this.entityTrie[this.entityResult+1]),this.emitCodePoint(this.entityTrie[this.entityResult+2])}}stateBeforeNumericEntity(e){(32|e)===na.LowerX?(this.entityExcess++,this.state=ra.InHexEntity):(this.state=ra.InNumericEntity,this.stateInNumericEntity(e))}emitNumericEntity(e){var t=this.index-this.entityExcess-1;2+t+Number(this.state===ra.InHexEntity)!==this.index&&(t>this.sectionStart&&this.emitPartial(this.sectionStart,t),this.sectionStart=this.index+Number(e),this.emitCodePoint(xr(this.entityResult))),this.state=this.baseState}stateInNumericEntity(e){e===na.Semi?this.emitNumericEntity(!0):ca(e)?(this.entityResult=10*this.entityResult+(e-na.Zero),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)}stateInHexEntity(e){e===na.Semi?this.emitNumericEntity(!0):ca(e)?(this.entityResult=16*this.entityResult+(e-na.Zero),this.entityExcess++):function(e){return e>=na.UpperA&&e<=na.UpperF||e>=na.LowerA&&e<=na.LowerF}(e)?(this.entityResult=16*this.entityResult+((32|e)-na.LowerA+10),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)}allowLegacyEntity(){return!this.xmlMode&&(this.baseState===ra.Text||this.baseState===ra.InSpecialTag)}cleanup(){this.running&&this.sectionStart!==this.index&&(this.state===ra.Text||this.state===ra.InSpecialTag&&0===this.sequenceIndex?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):this.state!==ra.InAttributeValueDq&&this.state!==ra.InAttributeValueSq&&this.state!==ra.InAttributeValueNq||(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}shouldContinue(){return this.index=this.buffers[0].length;)this.shiftBuffer();let n=this.buffers[0].slice(e-this.bufferOffset,t-this.bufferOffset);for(;t-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),n+=this.buffers[0].slice(0,t-this.bufferOffset);return n}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(e){var t,n;this.ended?null!=(n=(t=this.cbs).onerror)&&n.call(t,new Error(".write() after done!")):(this.buffers.push(e),this.tokenizer.running&&(this.tokenizer.write(e),this.writeIndex++))}end(e){var t,n;this.ended?null!=(n=(t=this.cbs).onerror)&&n.call(t,new Error(".end() after done!")):(e&&this.write(e),this.ended=!0,this.tokenizer.end())}pause(){this.tokenizer.pause()}resume(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex{t=this._getPreferredOutput(t);return a&&Array.isArray(t)?e=e.concat(t):e.push(t),e},[]):this._getPreferredOutput(e[0]):o?[]:void 0},Fa.prototype._getPreferredOutput=function(e){const t=this.currResultType;switch(t){case"all":{const t=Array.isArray(e.path)?e.path:Fa.toPathArray(e.path);return e.pointer=Fa.toPointer(t),e.path="string"==typeof e.path?e.path:Fa.toPathString(e.path),e}case"value":case"parent":case"parentProperty":return e[t];case"path":return Fa.toPathString(e[t]);case"pointer":return Fa.toPointer(e.path);default:throw new TypeError("Unknown result type")}},Fa.prototype._handleCallback=function(e,t,n){var r;t&&(r=this._getPreferredOutput(e),e.path="string"==typeof e.path?e.path:Fa.toPathString(e.path),t(r,n,e))},Fa.prototype._trace=function(e,t,n,r,i,s,a,o){let c;if(!e.length)return c={path:n,value:t,parent:r,parentProperty:i,hasArrExpr:a},this._handleCallback(c,s,"value"),c;const u=e[0],l=e.slice(1),h=[];function f(e){Array.isArray(e)?e.forEach(e=>{h.push(e)}):h.push(e)}if(("string"!=typeof u||o)&&t&&xa.call(t,u))f(this._trace(l,t[u],Ma(n,u),t,u,s,a));else if("*"===u)this._walk(t,e=>{f(this._trace(l,t[e],Ma(n,e),t,e,s,!0,!0))});else if(".."===u)f(this._trace(l,t,n,r,i,s,a)),this._walk(t,r=>{"object"==typeof t[r]&&f(this._trace(e.slice(),t[r],Ma(n,r),t,r,s,!0))});else{if("^"===u)return this._hasParentSelector=!0,{path:n.slice(0,-1),expr:l,isParentSelector:!0};if("~"===u)return c={path:Ma(n,u),value:i,parent:r,parentProperty:null},this._handleCallback(c,s,"property"),c;if("$"===u)f(this._trace(l,t,n,null,null,s,a));else if(/^(-?\d*):(-?\d*):?(\d*)$/u.test(u))f(this._slice(u,l,t,n,r,i,s));else if(0===u.indexOf("?(")){if(this.currPreventEval)throw new Error("Eval [?(expr)] prevented in JSONPath expression.");const e=u.replace(/^\?\((.*?)\)$/u,"$1");this._walk(t,a=>{this._eval(e,t[a],a,n,r,i)&&f(this._trace(l,t[a],Ma(n,a),t,a,s,!0))})}else if("("===u[0]){if(this.currPreventEval)throw new Error("Eval [(expr)] prevented in JSONPath expression.");f(this._trace(Pa(this._eval(u,t,n[n.length-1],n.slice(0,-1),r,i),l),t,n,r,i,s,a))}else if("@"===u[0]){let e=!1;const a=u.slice(1,-2);switch(a){case"scalar":t&&["object","function"].includes(typeof t)||(e=!0);break;case"boolean":case"string":case"undefined":case"function":typeof t===a&&(e=!0);break;case"integer":!Number.isFinite(t)||t%1||(e=!0);break;case"number":Number.isFinite(t)&&(e=!0);break;case"nonFinite":"number"!=typeof t||Number.isFinite(t)||(e=!0);break;case"object":t&&typeof t===a&&(e=!0);break;case"array":Array.isArray(t)&&(e=!0);break;case"other":e=this.currOtherTypeCallback(t,n,r,i);break;case"null":null===t&&(e=!0);break;default:throw new TypeError("Unknown value type "+a)}if(e)return c={path:n,value:t,parent:r,parentProperty:i},this._handleCallback(c,s,"value"),c}else if("`"===u[0]&&t&&xa.call(t,u.slice(1))){const e=u.slice(1);f(this._trace(l,t[e],Ma(n,e),t,e,s,a,!0))}else if(u.includes(",")){const e=u.split(",");for(const a of e)f(this._trace(Pa(a,l),t,n,r,i,s,!0))}else!o&&t&&xa.call(t,u)&&f(this._trace(l,t[u],Ma(n,u),t,u,s,a,!0))}if(this._hasParentSelector)for(let e=0;e{t(e)})},Fa.prototype._slice=function(e,t,n,r,i,s,a){if(Array.isArray(n)){var o=n.length,e=e.split(":"),u=e[2]&&Number.parseInt(e[2])||1,l=e[0]&&Number.parseInt(e[0])||0,h=e[1]&&Number.parseInt(e[1])||o,l=l<0?Math.max(0,l+o):Math.min(o,l),h=h<0?Math.max(0,h+o):Math.min(o,h);const f=[];for(let e=l;e{f.push(e)});return f}},Fa.prototype._eval=function(e,t,n,r,i,s){this.currSandbox._$_parentProperty=s,this.currSandbox._$_parent=i,this.currSandbox._$_property=n,this.currSandbox._$_root=this.json,this.currSandbox._$_v=t;s=e.includes("@path"),s&&(this.currSandbox._$_path=Fa.toPathString(r.concat([n]))),i="script:"+e;if(!Fa.cache[i]){let t=e.replace(/@parentProperty/gu,"_$_parentProperty").replace(/@parent/gu,"_$_parent").replace(/@property/gu,"_$_property").replace(/@root/gu,"_$_root").replace(/@([.\s)[])/gu,"_$_v$1");s&&(t=t.replace(/@path/gu,"_$_path")),Fa.cache[i]=new this.vm.Script(t)}try{return Fa.cache[i].runInNewContext(this.currSandbox)}catch(t){throw new Error("jsonPath: "+t.message+": "+e)}},Fa.cache={},Fa.toPathString=function(e){var t=e,n=t.length;let r="$";for(let e=1;e":">"},i=/[&"'<>]/g,s=e.exports={};function a(e,t){return n.hasOwnProperty.call(e,t)}function o(e){return r[e]}function c(e,t,n){var r,i,a,s,o;return e instanceof Error&&(e=(i=e).name+": "+i.message),Object.setPrototypeOf?(r=new Error(e),Object.setPrototypeOf(r,c.prototype)):(r=this,Object.defineProperty(r,"message",{enumerable:!1,writable:!0,value:e})),Object.defineProperty(r,"name",{value:"Template render error"}),Error.captureStackTrace&&Error.captureStackTrace(r,this.constructor),s=i?(a=Object.getOwnPropertyDescriptor(i,"stack"),(s=a&&(a.get||function(){return a.value}))||function(){return i.stack}):(o=new Error(e).stack,function(){return o}),Object.defineProperty(r,"stack",{get:function(){return s.call(r)}}),Object.defineProperty(r,"cause",{value:i}),r.lineno=t,r.colno=n,r.firstUpdate=!0,r.Update=function(e){e="("+(e||"unknown path")+")";return this.firstUpdate&&(this.lineno&&this.colno?e+=" [Line "+this.lineno+", Column "+this.colno+"]":this.lineno&&(e+=" [Line "+this.lineno+"]")),e+="\n ",this.firstUpdate&&(e+=" "),this.message=e+(this.message||""),this.firstUpdate=!1,this},r}function u(e){return"[object Function]"===n.toString.call(e)}function l(e){return"[object Array]"===n.toString.call(e)}function h(e){return"[object String]"===n.toString.call(e)}function f(e){return"[object Object]"===n.toString.call(e)}function p(e){var t=function(e){return e?"string"==typeof e?e.split("."):[e]:[]}(e);return function(e){for(var n=e,r=0;rr&&(a.warned=!0,(r=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit")).name="MaxListenersExceededWarning",r.emitter=e,r.type=t,r.count=a.length,function(e){"function"==typeof console.warn?console.warn(e):console.log(e)}(r))):(a=s[t]=n,++e._eventsCount),e}function mo(e,t,n){var r=!1;function i(){e.removeListener(t,i),r||(r=!0,n.apply(e,arguments))}return i.listener=n,i}function _o(e){var t=this._events;if(t){t=t[e];if("function"==typeof t)return 1;if(t)return t.length}return 0}function Eo(e,t){for(var n=new Array(t);t--;)n[t]=e[t];return n}function To(){var e;ho.call(this),this.__emitError=(e=this,function(t){e.emit("error",t)})}function Ao(){return new To}lo.prototype=Object.create(null),(ho.EventEmitter=ho).usingDomains=!1,ho.prototype.domain=void 0,ho.prototype._events=void 0,ho.prototype._maxListeners=void 0,ho.defaultMaxListeners=10,ho.init=function(){this.domain=null,ho.usingDomains&&(void 0).active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new lo,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},ho.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},ho.prototype.getMaxListeners=function(){return fo(this)},ho.prototype.emit=function(e){var n,r,i,s,a,c="error"===e;if(a=this._events)c=c&&null==a.error;else if(!c)return!1;if(o=this.domain,c){if(c=arguments[1],o)return(c=c||new Error('Uncaught, unspecified "error" event')).domainEmitter=this,c.domain=o,c.domainThrown=!1,o.emit("error",c),!1;if(c instanceof Error)throw c;var o=new Error('Uncaught, unspecified "error" event. ('+c+")");throw o.context=c,o}if(!(n=a[e]))return!1;var l="function"==typeof n;switch(r=arguments.length){case 1:!function(e,n){if(l)e.call(n);else for(var r=e.length,i=Eo(e,r),s=0;s=","//","**"],u=r+this.current();switch(-1!==Ua.indexOf(c,u)&&(this.forward(),-1!==Ua.indexOf(c,(r=u)+this.current()))&&(r=u+this.current(),this.forward()),r){case"(":o=Ko;break;case")":o=Wo;break;case"[":o=Vo;break;case"]":o=$o;break;case"{":o=Qo;break;case"}":o=zo;break;case",":o=Zo;break;case":":o=Jo;break;case"~":o=ec;break;case"|":o=tc;break;default:o=Xo}return oc(o,r,t,n)}if((e=this._extractUntil(Mo+Po)).match(/^[-+]?[0-9]+$/))return"."===this.current()?(this.forward(),c=this._extract("0123456789"),oc(nc,e+"."+c,t,n)):oc("int",e,t,n);if(e.match(/^(true|false)$/))return oc(rc,e,t,n);if("none"===e)return oc(ic,e,t,n);if("null"===e)return oc(ic,e,t,n);if(e)return oc(sc,e,t,n);throw new Error("Unexpected value while parsing: "+e)}var h,f=this.tags.BLOCK_START.charAt(0)+this.tags.VARIABLE_START.charAt(0)+this.tags.COMMENT_START.charAt(0)+this.tags.COMMENT_END.charAt(0);if(this.isFinished())return null;if(e=(e=this._extractString(this.tags.BLOCK_START+"-"))||this._extractString(this.tags.BLOCK_START))return this.in_code=!0,oc(Ho,e,t,n);if(e=(e=this._extractString(this.tags.VARIABLE_START+"-"))||this._extractString(this.tags.VARIABLE_START))return this.in_code=!0,oc(jo,e,t,n);var e="",p=!1;for(this._matches(this.tags.COMMENT_START)&&(p=!0,e=this._extractString(this.tags.COMMENT_START));null!==(h=this._extractUntil(f));){if(e+=h,(this._matches(this.tags.BLOCK_START)||this._matches(this.tags.VARIABLE_START)||this._matches(this.tags.COMMENT_START))&&!p){if(this.lstripBlocks&&this._matches(this.tags.BLOCK_START)&&0this.len?null:this.str.slice(this.index,this.index+e.length)===e},t._extractString=function(e){return this._matches(e)?(this.forwardN(e.length),e):null},t._extractUntil=function(e){return this._extractMatching(!0,e||"")},t._extract=function(e){return this._extractMatching(!1,e)},t._extractMatching=function(e,t){if(this.isFinished())return null;var n=t.indexOf(this.current());if(e&&-1===n||!e&&-1!==n){var r=this.current();this.forward();for(var i=t.indexOf(this.current());(e&&-1===i||!e&&-1!==i)&&!this.isFinished();)r+=this.current(),this.forward(),i=t.indexOf(this.current());return r}return""},t._extractRegex=function(e){e=this.currentStr().match(e);return e?(this.forwardN(e[0].length),e):null},t.isFinished=function(){return this.index>=this.len},t.forwardN=function(e){for(var t=0;t",n+2),e(t,n+4)}))}};function Iu(e,t){return(Iu=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}bu.Node,bu.Root,bu.NodeList,bu.Value,bu.Literal,bu.Group,bu.Pair,bu.Dict,bu.Output,bu.Capture,bu.TemplateData,bu.If,bu.IfAsync,bu.InlineIf,bu.For,bu.AsyncEach,bu.AsyncAll,bu.Macro,bu.Caller,bu.Import,bu.FromImport,bu.FunCall,bu.Filter,bu.FilterAsync,bu.KeywordArgs,bu.Block,bu.Super,bu.Extends,bu.Include,bu.Switch,bu.Case,bu.LookupVal,bu.BinOp,bu.In,bu.Is,bu.Or,bu.And,bu.Not,bu.Add,bu.Concat,bu.Sub,bu.Mul,bu.Div,bu.FloorDiv,bu.Mod,bu.Pow,bu.Neg,bu.Pos,bu.Compare,bu.CompareOperand,bu.CallExtension,bu.CallExtensionAsync,bu.printNodes;var Ou=function(e){var n;function r(){return e.apply(this,arguments)||this}n=e,(t=r).prototype=Object.create(n.prototype),Iu(t.prototype.constructor=t,n);var t=r.prototype;return t.init=function(e){this.tokens=e,this.peeked=null,this.breakOnBlocks=null,this.dropLeadingWhitespace=!1,this.extensions=[]},t.nextToken=function(e){var t;if(this.peeked){if(e||this.peeked.type!==uc.TOKEN_WHITESPACE)return t=this.peeked,this.peeked=null,t;this.peeked=null}if(t=this.tokens.nextToken(),!e)for(;t&&t.type===uc.TOKEN_WHITESPACE;)t=this.tokens.nextToken();return t},t.peekToken=function(){return this.peeked=this.peeked||this.nextToken(),this.peeked},t.pushToken=function(e){if(this.peeked)throw new Error("pushToken: can only push one token on between reads");this.peeked=e},t.error=function(e,t,n){var r;return void 0!==t&&void 0!==n||(t=(r=this.peekToken()||{}).lineno,n=r.colno),void 0!==t&&(t+=1),void 0!==n&&(n+=1),new Ua.TemplateError(e,t,n)},t.fail=function(e,t,n){throw this.error(e,t,n)},t.skip=function(e){var t=this.nextToken();return!(!t||t.type!==e)||(this.pushToken(t),!1)},t.expect=function(e){var t=this.nextToken();return t.type!==e&&this.fail("expected "+e+", got "+t.type,t.lineno,t.colno),t},t.skipValue=function(e,t){var n=this.nextToken();return!(!n||n.type!==e||n.value!==t)||(this.pushToken(n),!1)},t.skipSymbol=function(e){return this.skipValue(uc.TOKEN_SYMBOL,e)},t.advanceAfterBlockEnd=function(e){var t;return e||((t=this.peekToken())||this.fail("unexpected end of file"),t.type!==uc.TOKEN_SYMBOL&&this.fail("advanceAfterBlockEnd: expected symbol token or explicit name to be passed"),e=this.nextToken().value),(t=this.nextToken())&&t.type===uc.TOKEN_BLOCK_END?"-"===t.value.charAt(0)&&(this.dropLeadingWhitespace=!0):this.fail("expected block end in "+e+" statement"),t},t.advanceAfterVariableEnd=function(){var e=this.nextToken();e&&e.type===uc.TOKEN_VARIABLE_END?this.dropLeadingWhitespace="-"===e.value.charAt(e.value.length-this.tokens.tags.VARIABLE_END.length-1):(this.pushToken(e),this.fail("expected variable end"))},t.parseFor=function(){var e,t,n=this.peekToken();if(this.skipSymbol("for")?(e=new bu.For(n.lineno,n.colno),t="endfor"):this.skipSymbol("asyncEach")?(e=new bu.AsyncEach(n.lineno,n.colno),t="endeach"):this.skipSymbol("asyncAll")?(e=new bu.AsyncAll(n.lineno,n.colno),t="endall"):this.fail("parseFor: expected for{Async}",n.lineno,n.colno),e.name=this.parsePrimary(),e.name instanceof bu.Symbol||this.fail("parseFor: variable name expected for loop"),this.peekToken().type===uc.TOKEN_COMMA){var r=e.name;for(e.name=new bu.Array(r.lineno,r.colno),e.name.addChild(r);this.skip(uc.TOKEN_COMMA);){var i=this.parsePrimary();e.name.addChild(i)}}return this.skipSymbol("in")||this.fail('parseFor: expected "in" keyword for loop',n.lineno,n.colno),e.arr=this.parseExpression(),this.advanceAfterBlockEnd(n.value),e.body=this.parseUntilBlocks(t,"else"),this.skipSymbol("else")&&(this.advanceAfterBlockEnd("else"),e.else_=this.parseUntilBlocks(t)),this.advanceAfterBlockEnd(),e},t.parseMacro=function(){var e=this.peekToken(),t=(this.skipSymbol("macro")||this.fail("expected macro"),this.parsePrimary(!0)),n=this.parseSignature(),t=new bu.Macro(e.lineno,e.colno,t,n);return this.advanceAfterBlockEnd(e.value),t.body=this.parseUntilBlocks("endmacro"),this.advanceAfterBlockEnd(),t},t.parseCall=function(){var e=this.peekToken(),t=(this.skipSymbol("call")||this.fail("expected call"),this.parseSignature(!0)||new bu.NodeList),n=this.parsePrimary(),r=(this.advanceAfterBlockEnd(e.value),this.parseUntilBlocks("endcall")),i=(this.advanceAfterBlockEnd(),new bu.Symbol(e.lineno,e.colno,"caller")),t=new bu.Caller(e.lineno,e.colno,i,t,r),r=n.args.children;return r[r.length-1]instanceof bu.KeywordArgs||r.push(new bu.KeywordArgs),r[r.length-1].addChild(new bu.Pair(e.lineno,e.colno,i,t)),new bu.Output(e.lineno,e.colno,[n])},t.parseWithContext=function(){var e=this.peekToken(),t=null;return this.skipSymbol("with")?t=!0:this.skipSymbol("without")&&(t=!1),null===t||this.skipSymbol("context")||this.fail("parseFrom: expected context after with/without",e.lineno,e.colno),t},t.parseImport=function(){var e=this.peekToken(),t=(this.skipSymbol("import")||this.fail("parseImport: expected import",e.lineno,e.colno),this.parseExpression()),n=(this.skipSymbol("as")||this.fail('parseImport: expected "as" keyword',e.lineno,e.colno),this.parseExpression()),r=this.parseWithContext(),t=new bu.Import(e.lineno,e.colno,t,n,r);return this.advanceAfterBlockEnd(e.value),t},t.parseFrom=function(){var e=this.peekToken(),t=(this.skipSymbol("from")||this.fail("parseFrom: expected from"),this.parseExpression());this.skipSymbol("import")||this.fail("parseFrom: expected import",e.lineno,e.colno);for(var n,r=new bu.NodeList;;){var i=this.peekToken();if(i.type===uc.TOKEN_BLOCK_END){r.children.length||this.fail("parseFrom: Expected at least one import name",e.lineno,e.colno),"-"===i.value.charAt(0)&&(this.dropLeadingWhitespace=!0),this.nextToken();break}0","<=",">="],t=this.parseConcat(),n=[];;){var r=this.nextToken();if(!r)break;if(-1===e.indexOf(r.value)){this.pushToken(r);break}n.push(new bu.CompareOperand(r.lineno,r.colno,this.parseConcat(),r.value))}return n.length?new bu.Compare(n[0].lineno,n[0].colno,t,n):t},t.parseConcat=function(){for(var e=this.parseAdd();this.skipValue(uc.TOKEN_TILDE,"~");)var t=this.parseAdd(),e=new bu.Concat(e.lineno,e.colno,e,t);return e},t.parseAdd=function(){for(var e=this.parseSub();this.skipValue(uc.TOKEN_OPERATOR,"+");)var t=this.parseSub(),e=new bu.Add(e.lineno,e.colno,e,t);return e},t.parseSub=function(){for(var e=this.parseMul();this.skipValue(uc.TOKEN_OPERATOR,"-");)var t=this.parseMul(),e=new bu.Sub(e.lineno,e.colno,e,t);return e},t.parseMul=function(){for(var e=this.parseDiv();this.skipValue(uc.TOKEN_OPERATOR,"*");)var t=this.parseDiv(),e=new bu.Mul(e.lineno,e.colno,e,t);return e},t.parseDiv=function(){for(var e=this.parseFloorDiv();this.skipValue(uc.TOKEN_OPERATOR,"/");)var t=this.parseFloorDiv(),e=new bu.Div(e.lineno,e.colno,e,t);return e},t.parseFloorDiv=function(){for(var e=this.parseMod();this.skipValue(uc.TOKEN_OPERATOR,"//");)var t=this.parseMod(),e=new bu.FloorDiv(e.lineno,e.colno,e,t);return e},t.parseMod=function(){for(var e=this.parsePow();this.skipValue(uc.TOKEN_OPERATOR,"%");)var t=this.parsePow(),e=new bu.Mod(e.lineno,e.colno,e,t);return e},t.parsePow=function(){for(var e=this.parseUnary();this.skipValue(uc.TOKEN_OPERATOR,"**");)var t=this.parseUnary(),e=new bu.Pow(e.lineno,e.colno,e,t);return e},t.parseUnary=function(e){var n=this.peekToken(),n=this.skipValue(uc.TOKEN_OPERATOR,"-")?new bu.Neg(n.lineno,n.colno,this.parseUnary(!0)):this.skipValue(uc.TOKEN_OPERATOR,"+")?new bu.Pos(n.lineno,n.colno,this.parseUnary(!0)):this.parsePrimary();return n=e?n:this.parseFilter(n)},t.parsePrimary=function(e){var t,n=this.nextToken(),r=null;if(n?n.type===uc.TOKEN_STRING?t=n.value:n.type===uc.TOKEN_INT?t=parseInt(n.value,10):n.type===uc.TOKEN_FLOAT?t=parseFloat(n.value):n.type===uc.TOKEN_BOOLEAN?"true"===n.value?t=!0:"false"===n.value?t=!1:this.fail("invalid boolean: "+n.value,n.lineno,n.colno):n.type===uc.TOKEN_NONE?t=null:n.type===uc.TOKEN_REGEX&&(t=new RegExp(n.value.body,n.value.flags)):this.fail("expected expression, got end of file"),r=void 0!==t?new bu.Literal(n.lineno,n.colno,t):n.type===uc.TOKEN_SYMBOL?new bu.Symbol(n.lineno,n.colno,n.value):(this.pushToken(n),this.parseAggregate()),r=e?r:this.parsePostfix(r))return r;throw this.error("unexpected token: "+n.value,n.lineno,n.colno)},t.parseFilterName=function(){for(var e=this.expect(uc.TOKEN_SYMBOL),t=e.value;this.skipValue(uc.TOKEN_OPERATOR,".");)t+="."+this.expect(uc.TOKEN_SYMBOL).value;return new bu.Symbol(e.lineno,e.colno,t)},t.parseFilterArgs=function(e){return this.peekToken().type===uc.TOKEN_LEFT_PAREN?this.parsePostfix(e).args.children:[]},t.parseFilter=function(e){for(;this.skip(uc.TOKEN_PIPE);){var t=this.parseFilterName();e=new bu.Filter(t.lineno,t.colno,t,new bu.NodeList(t.lineno,t.colno,[e].concat(this.parseFilterArgs(e))))}return e},t.parseFilterStatement=function(){var e=this.peekToken(),t=(this.skipSymbol("filter")||this.fail("parseFilterStatement: expected filter"),this.parseFilterName()),n=this.parseFilterArgs(t),e=(this.advanceAfterBlockEnd(e.value),new bu.Capture(t.lineno,t.colno,this.parseUntilBlocks("endfilter"))),e=(this.advanceAfterBlockEnd(),new bu.Filter(t.lineno,t.colno,t,new bu.NodeList(t.lineno,t.colno,[e].concat(n))));return new bu.Output(t.lineno,t.colno,[e])},t.parseAggregate=function(){var e,t=this.nextToken();switch(t.type){case uc.TOKEN_LEFT_PAREN:e=new bu.Group(t.lineno,t.colno);break;case uc.TOKEN_LEFT_BRACKET:e=new bu.Array(t.lineno,t.colno);break;case uc.TOKEN_LEFT_CURLY:e=new bu.Dict(t.lineno,t.colno);break;default:return null}for(;;){var i,n=this.peekToken().type;if(n===uc.TOKEN_RIGHT_PAREN||n===uc.TOKEN_RIGHT_BRACKET||n===uc.TOKEN_RIGHT_CURLY){this.nextToken();break}0e.length)a=i.slice(0,e.length),i.slice(a.length,o).forEach(function(e,n){n":">","<=":"<=",">=":">="},Qu=function(e){var n;function r(){return e.apply(this,arguments)||this}n=e,(t=r).prototype=Object.create(n.prototype),Ku(t.prototype.constructor=t,n);var t=r.prototype;return t.init=function(e,t){this.templateName=e,this.codebuf=[],this.lastId=0,this.buffer=null,this.bufferStack=[],this._scopeClosers="",this.inBlock=!1,this.throwOnUndefined=t},t.fail=function(e,t,n){throw void 0!==t&&(t+=1),void 0!==n&&(n+=1),new Wu(e,t,n)},t._pushBuffer=function(){var e=this._tmpid();return this.bufferStack.push(this.buffer),this.buffer=e,this._emit("var "+this.buffer+' = "";'),e},t._popBuffer=function(){this.buffer=this.bufferStack.pop()},t._emit=function(e){this.codebuf.push(e)},t._emitLine=function(e){this._emit(e+"\n")},t._emitLines=function(){for(var e=this,t=arguments.length,n=new Array(t),r=0;r=(t=t||80)?e:(t=t-e.length,i=Ua.repeat(" ",t/2-t%2),t=Ua.repeat(" ",t/2),Yu.copySafeness(e,i+e+t))},e.default=function(e,t,n){return n?e||t:void 0!==e?e:t},e.dictsort=function(e,t,n){if(!Ua.isObject(e))throw new Ua.TemplateError("dictsort filter: val must be an object");var r,s,i=[];for(s in e)i.push([s,e[s]]);if(void 0===n||"key"===n)r=0;else{if("value"!==n)throw new Ua.TemplateError("dictsort filter: You can only sort by either key or value");r=1}return i.sort(function(e,n){e=e[r],n=n[r];return t||(Ua.isString(e)&&(e=e.toUpperCase()),Ua.isString(n)&&(n=n.toUpperCase())),n\n"))},e.random=function(e){return e[Math.floor(Math.random()*e.length)]},e.reject=a(!1),e.rejectattr=function(e,t){return e.filter(function(e){return!e[t]})},e.select=a(!0),e.selectattr=function(e,t){return e.filter(function(e){return!!e[t]})},e.replace=function(e,t,n,r){var i=e;if(t instanceof RegExp)return e.replace(t,n);void 0===r&&(r=-1);var s="";if("number"==typeof t)t=""+t;else if("string"!=typeof t)return e;if("string"!=typeof(e="number"==typeof e?""+e:e)&&!(e instanceof Yu.SafeString))return e;if(""===t)return s=n+e.split("").join(n)+n,Yu.copySafeness(e,s);var a=e.indexOf(t);if(0===r||-1===a)return e;for(var o=0,c=0;-1]*>|/gi,"")),t=t?r.replace(/^ +| +$/gm,"").replace(/ +/g," ").replace(/(\r\n)/g,"\n").replace(/\n\n\n+/g,"\n\n"):r.replace(/\s+/gi," ");return Yu.copySafeness(e,t)},e.title=function(e){var t=(e=n(e,"")).split(" ").map(i);return Yu.copySafeness(e,t.join(" "))},e.trim=o,e.truncate=function(e,t,r,i){var s=e;return(e=n(e,"")).length<=(t=t||255)?e:(e=r?e.substring(0,t):(-1===(r=e.lastIndexOf(" ",t))&&(r=t),e.substring(0,r)),Yu.copySafeness(s,e+=null!=i?i:"..."))},e.upper=function(e){return(e=n(e,"")).toUpperCase()},e.urlencode=function(e){var t=encodeURIComponent;return Ua.isString(e)?t(e):(Ua.isArray(e)?e:Ua._entries(e)).map(function(e){var n=e[0],e=e[1];return t(n)+"="+t(e)}).join("&")};var c=/^(?:\(|<|<)?(.*?)(?:\.|,|\)|\n|>)?$/,u=/^[\w.!#$%&'*+\-\/=?\^`{|}~]+@[a-z\d\-]+(\.[a-z\d\-]+)+$/i,l=/^https?:\/\/.*$/,h=/^www\./,f=/\.(?:org|net|com)(?:\:|\/|$)/,p=(e.urlize=function(e,t,n){r(t)&&(t=1/0);var i=!0===n?' rel="nofollow"':"";return e.split(/(\s+)/).filter(function(e){return e&&e.length}).map(function(e){var n=e.match(c),n=n?n[1]:e,s=n.substr(0,t);return l.test(n)?'"+s+"":h.test(n)?'"+s+"":u.test(n)?''+n+"":f.test(n)?'"+s+"":e}).join("")},e.wordcount=function(e){e=(e=n(e,""))?e.match(/\w+/g):null;return e?e.length:null},e.float=function(e,t){e=parseFloat(e);return r(e)?t:e},Yu.makeMacro(["value","default","base"],[],function(e,t,n){void 0===n&&(n=10);e=parseInt(e,n);return r(e)?t:e}));e.int=p,e.d=e.default,e.e=e.escape}),Zu={};function Ju(e,t){for(var n=0,r=e.length-1;0<=r;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;)e.unshift("..");return e}var el=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,tl=function(e){return el.exec(e).slice(1)};function nl(){for(var e="",t=!1,n=arguments.length-1;-1<=n&&!t;n--){var r=0<=n?arguments[n]:"/";if("string"!=typeof r)throw new TypeError("Arguments to path.resolve must be strings");r&&(e=r+"/"+e,t="/"===r.charAt(0))}return(t?"/":"")+Ju(al(e.split("/"),function(e){return!!e}),!t).join("/")||"."}function rl(e){var t=il(e),n="/"===ol(e,-1);return(e=(e=Ju(al(e.split("/"),function(e){return!!e}),!t).join("/"))||t?e:".")&&n&&(e+="/"),(t?"/":"")+e}function il(e){return"/"===e.charAt(0)}var sl={extname:function(e){return tl(e)[3]},basename:function(e,t){e=tl(e)[2];return e=t&&e.substr(-1*t.length)===t?e.substr(0,e.length-t.length):e},dirname:function(e){var e=tl(e),n=e[0],e=e[1];return n||e?n+(e=e&&e.substr(0,e.length-1)):"."},sep:"/",delimiter:":",relative:function(e,t){function n(e){for(var t=0;t=e.length&&(t=0),this.current=e[t],this.current}};var e,t},joiner:function(e){e=e||",";var t=!0;return function(){var n=t?"":e;return t=!1,n}}}});function Al(e,t){e.prototype=Object.create(t.prototype),gl(e.prototype.constructor=e,t)}function gl(e,t){return(gl=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}var vl=_l.FileSystemLoader,yl=_l.WebLoader,Sl=_l.PrecompiledLoader,Cl=Ec.Obj,Nl=Ec.EmitterObj,bl=Yu.handleError,Il=Yu.Frame;function Ol(e,t,n){Ro(function(){e(t,n)})}var kl={type:"code",obj:{root:function(e,t,n,r,i){try{i(null,"")}catch(e){i(bl(e,null,null))}}}},Ll=function(e){function t(){return e.apply(this,arguments)||this}Al(t,e);var n=t.prototype;return n.init=function(e,t){var n=this;t=this.opts=t||{},this.opts.dev=!!t.dev,this.opts.autoescape=null==t.autoescape||t.autoescape,this.opts.throwOnUndefined=!!t.throwOnUndefined,this.opts.trimBlocks=!!t.trimBlocks,this.opts.lstripBlocks=!!t.lstripBlocks,this.loaders=[],e?this.loaders=Ua.isArray(e)?e:[e]:vl?this.loaders=[new vl("views")]:yl&&(this.loaders=[new yl("/views")]),"undefined"!=typeof window&&window.nunjucksPrecompiled&&this.loaders.unshift(new Sl(window.nunjucksPrecompiled)),this._initLoaders(),this.globals=Tl(),this.filters={},this.tests={},this.asyncFilters=[],this.extensions={},this.extensionsList=[],Ua._entries(Xu).forEach(function(e){var t=e[0],e=e[1];return n.addFilter(t,e)}),Ua._entries(El).forEach(function(e){var t=e[0],e=e[1];return n.addTest(t,e)})},n._initLoaders=function(){var e=this;this.loaders.forEach(function(t){t.cache={},"function"==typeof t.on&&(t.on("update",function(n,r){t.cache[n]=null,e.emit("update",n,r,t)}),t.on("load",function(n,r){e.emit("load",n,r,t)}))})},n.invalidateCache=function(){this.loaders.forEach(function(e){e.cache={}})},n.addExtension=function(e,t){return t.__name=e,this.extensions[e]=t,this.extensionsList.push(t),this},n.removeExtension=function(e){var t=this.getExtension(e);t&&(this.extensionsList=Ua.without(this.extensionsList,t),delete this.extensions[e])},n.getExtension=function(e){return this.extensions[e]},n.hasExtension=function(e){return!!this.extensions[e]},n.addGlobal=function(e,t){return this.globals[e]=t,this},n.getGlobal=function(e){if(void 0===this.globals[e])throw new Error("global not found: "+e);return this.globals[e]},n.addFilter=function(e,t,n){return n&&this.asyncFilters.push(e),this.filters[e]=t,this},n.getFilter=function(e){if(this.filters[e])return this.filters[e];throw new Error("filter not found: "+e)},n.addTest=function(e,t){return this.tests[e]=t,this},n.getTest=function(e){if(this.tests[e])return this.tests[e];throw new Error("test not found: "+e)},n.resolveTemplate=function(e,t,n){return e.isRelative&&t&&e.isRelative(n)&&e.resolve?e.resolve(t,n):n},n.getTemplate=function(e,t,n,r,i){var s,a=this,o=this,c=null;if(e&&e.raw&&(e=e.raw),Ua.isFunction(n)&&(i=n,n=null,t=t||!1),Ua.isFunction(t)&&(i=t,t=!1),e instanceof Rl)c=e;else{if("string"!=typeof e)throw new Error("template names must be a string: "+e);for(var u=0;u{var t=["th","st","nd","rd"],n=e%100;return`[${e}${t[(n-20)%10]||t[n]||t[0]}]`}};const th=(e,t,n)=>{var r=String(e);return!r||r.length>=t?e:""+Array(t+1-r.length).join(n)+e},nh=(e,t)=>{var n,r,i;return e.date(){var e=-e.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),n=n%60;return(e<=0?"+":"-")+th(r,2,"0")+":"+th(n,2,"0")},m:nh,a:e=>e<0?Math.ceil(e)||0:Math.floor(e),p:e=>({M:Vl,y:Ql,w:Wl,d:Kl,D:zl,h:Yl,m:ql,s:jl,ms:Gl,Q:$l})[e]||String(e||"").toLowerCase().replace(/s$/,""),u:e=>void 0===e};let ih="en";const sh={},ah=(sh[ih]=eh,e=>e instanceof lh),oh=(e,t,n)=>{let r;if(!e)return ih;if("string"==typeof e){const n=e.toLowerCase();sh[n]&&(r=n),t&&(sh[n]=t,r=n);t=e.split("-");if(!r&&1ch(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset});class lh{constructor(e){this.$L=oh(e.locale,null,!0),this.parse(e)}parse(e){this.$d=(e=>{const{date:t,utc:n}=e;if(null===t)return new Date(NaN);if(uh.u(t))return new Date;if(!(t instanceof Date||"string"!=typeof t||/Z$/i.test(t))){const e=t.match(Zl);if(e){const t=e[2]-1||0,r=(e[7]||"0").substring(0,3);return n?new Date(Date.UTC(e[1],t,e[3]||1,e[4]||0,e[5]||0,e[6]||0,r)):new Date(e[1],t,e[3]||1,e[4]||0,e[5]||0,e[6]||0,r)}}return new Date(t)})(e),this.$x=e.x||{},this.init()}init(){var e=this["$d"];this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()}$utils(){return uh}isValid(){return!(this.$d.toString()===Xl)}isSame(e,t){e=ch(e);return this.startOf(t)<=e&&e<=this.endOf(t)}isAfter(e,t){return ch(e){t=uh.w(this.$u?Date.UTC(this.$y,t,e):new Date(this.$y,t,e),this);return n?t:t.endOf(Kl)},s=(e,t)=>uh.w(this.toDate()[e].apply(this.toDate("s"),(n?[0,0,0,0]:[23,59,59,999]).slice(t)),this),{$W:a,$M:o,$D:c}=this,u="set"+(this.$u?"UTC":"");switch(r){case Ql:return n?i(1,0):i(31,11);case Vl:return n?i(1,o):i(0,o+1);case Wl:{const e=this.$locale().weekStart||0,t=(a{var n=ch(this);return uh.w(n.date(n.date()+Math.round(t*e)),this)};return t===Vl?this.set(Vl,this.$M+e):t===Ql?this.set(Ql,this.$y+e):t===Kl?r(1):t===Wl?r(7):(r={[ql]:Ul,[Yl]:Hl,[jl]:Fl}[t]||1,t=this.$d.getTime()+e*r,uh.w(t,this))}subtract(e,t){return this.add(-1*e,t)}format(e){var t=this.$locale();if(!this.isValid())return t.invalidDate||Xl;const n=e||"YYYY-MM-DDTHH:mm:ssZ",r=uh.z(this),{$H:i,$m:s,$M:a}=this,{weekdays:o,months:c,meridiem:u}=t,l=(e,t,r,i)=>e&&(e[t]||e(this,n))||r[t].slice(0,i),h=e=>uh.s(i%12||12,e,"0"),f=u||((e,t,n)=>{e=e<12?"AM":"PM";return n?e.toLowerCase():e}),p={YY:String(this.$y).slice(-2),YYYY:this.$y,M:a+1,MM:uh.s(a+1,2,"0"),MMM:l(t.monthsShort,a,c,3),MMMM:l(c,a),D:this.$D,DD:uh.s(this.$D,2,"0"),d:String(this.$W),dd:l(t.weekdaysMin,this.$W,o,2),ddd:l(t.weekdaysShort,this.$W,o,3),dddd:o[this.$W],H:String(i),HH:uh.s(i,2,"0"),h:h(1),hh:h(2),a:f(i,s,!0),A:f(i,s,!1),m:String(s),mm:uh.s(s,2,"0"),s:String(this.$s),ss:uh.s(this.$s,2,"0"),SSS:uh.s(this.$ms,3,"0"),Z:r};return n.replace(Jl,(e,t)=>t||p[e]||r.replace(":",""))}utcOffset(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)}diff(e,t,n){var t=uh.p(t),e=ch(e),s=(e.utcOffset()-this.utcOffset())*Ul,a=this-e,e=uh.m(this,e),e={[Ql]:e/12,[Vl]:e,[$l]:e/3,[Wl]:(a-s)/6048e5,[Kl]:(a-s)/864e5,[Yl]:a/Hl,[ql]:a/Ul,[jl]:a/Fl}[t]||a;return n?e:uh.a(e)}daysInMonth(){return this.endOf(Vl).$D}$locale(){return sh[this.$L]}locale(e,t){var n;return e?(n=this.clone(),(e=oh(e,t,!0))&&(n.$L=e),n):this.$L}clone(){return uh.w(this.$d,this)}toDate(){return new Date(this.valueOf())}toJSON(){return this.isValid()?this.toISOString():null}toISOString(){return this.$d.toISOString()}toString(){return this.$d.toUTCString()}}const hh=lh.prototype;ch.prototype=hh,[["$ms",Gl],["$s",jl],["$m",ql],["$H",Yl],["$W",Kl],["$M",Vl],["$y",Ql],["$D",zl]].forEach(e=>{hh[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),ch.extend=(e,t)=>(e.$i||(e(t,lh,ch),e.$i=!0),ch),ch.locale=oh,ch.isDayjs=ah,ch.unix=e=>ch(1e3*e),ch.en=sh[ih],ch.Ls=sh,ch.p={};var fh=Sr(function(e){function r(e){return e&&(e=e.toString().replace(n.pluses,"%20"),e=decodeURIComponent(e)),e}function i(e){var t,i,s,a,o,c,u,l=[];if(null!=e&&""!==e)for(u=(i=(e=(t=0)===e.indexOf("?")?e.substring(1):e).toString().split(n.query_separator)).length;t>>0;if("function"!=typeof e)throw new TypeError(e+" is not a function");for(1"']/g,$=RegExp(W.source),Q=RegExp(V.source),z=/<%-([\s\S]+?)%>/g,X=/<%([\s\S]+?)%>/g,Z=/<%=([\s\S]+?)%>/g,J=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ee=/^\w*$/,te=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ne=/[\\^$.*+?()[\]{}|]/g,re=RegExp(ne.source),ie=/^\s+/,se=/\s/,ae=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,oe=/\{\n\/\* \[wrapped with (.+)\] \*/,ce=/,? & /,ue=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,le=/[()=,{}\[\]\/\s]/,he=/\\(\\)?/g,fe=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,pe=/\w*$/,de=/^[-+]0x[0-9a-f]+$/i,me=/^0b[01]+$/i,_e=/^\[object .+?Constructor\]$/,Ee=/^0o[0-7]+$/i,Te=/^(?:0|[1-9]\d*)$/,Ae=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ge=/($^)/,ve=/['\n\r\u2028\u2029\\]/g,ye="\\ud800-\\udfff",Se="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Ce="\\u2700-\\u27bf",Ne="a-z\\xdf-\\xf6\\xf8-\\xff",be="A-Z\\xc0-\\xd6\\xd8-\\xde",Ie="\\ufe0e\\ufe0f",Oe="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Le="["+ye+"]",De="["+Oe+"]",Re="["+Se+"]",xe="["+Ce+"]",Me="["+Ne+"]",Oe="[^"+ye+Oe+"\\d+"+Ce+Ne+be+"]",Ce="\\ud83c[\\udffb-\\udfff]",Ne="[^"+ye+"]",Ue="(?:\\ud83c[\\udde6-\\uddff]){2}",He="[\\ud800-\\udbff][\\udc00-\\udfff]",be="["+be+"]",je="\\u200d",qe="(?:"+Me+"|"+Oe+")",Oe="(?:"+be+"|"+Oe+")",Ke="(?:['’](?:d|ll|m|re|s|t|ve))?",We="(?:['’](?:D|LL|M|RE|S|T|VE))?",Ve="(?:"+Re+"|"+Ce+")?",$e="["+Ie+"]?",$e=$e+Ve+"(?:"+je+"(?:"+[Ne,Ue,He].join("|")+")"+$e+Ve+")*",Ve="(?:"+[xe,Ue,He].join("|")+")"+$e,xe="(?:"+[Ne+Re+"?",Re,Ue,He,Le].join("|")+")",Ze=RegExp("['’]","g"),Je=RegExp(Re,"g"),et=RegExp(Ce+"(?="+Ce+")|"+xe+$e,"g"),tt=RegExp([be+"?"+Me+"+"+Ke+"(?="+[De,be,"$"].join("|")+")",Oe+"+"+We+"(?="+[De,be+qe,"$"].join("|")+")",be+"?"+qe+"+"+Ke,be+"+"+We,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])","\\d+",Ve].join("|"),"g"),nt=RegExp("["+je+ye+Se+Ie+"]"),rt=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,it=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],st=-1,at={},ot=(at[x]=at[M]=at[P]=at[B]=at[F]=at[U]=at[H]=at[G]=at[j]=!0,at[_]=at[E]=at[R]=at[T]=at[w]=at[A]=at[g]=at[v]=at[S]=at[C]=at[N]=at[I]=at[O]=at[k]=at[D]=!1,{}),ct=(ot[_]=ot[E]=ot[R]=ot[w]=ot[T]=ot[A]=ot[x]=ot[M]=ot[P]=ot[B]=ot[F]=ot[S]=ot[C]=ot[N]=ot[I]=ot[O]=ot[k]=ot[L]=ot[U]=ot[H]=ot[G]=ot[j]=!0,ot[g]=ot[v]=ot[D]=!1,{"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"}),ut=parseFloat,lt=parseInt,Ne="object"==typeof gr&&gr&&gr.Object===Object&&gr,Ue="object"==typeof self&&self&&self.Object===Object&&self,pt=Ne||Ue||Function("return this")(),He=t&&!t.nodeType&&t,mt=He&&e&&!e.nodeType&&e,_t=mt&&mt.exports===He,Et=_t&&Ne.process,Le=function(){try{return mt&&mt.require&&mt.require("util").types||Et&&Et.binding&&Et.binding("util")}catch(e){}}(),At=Le&&Le.isArrayBuffer,gt=Le&&Le.isDate,vt=Le&&Le.isMap,yt=Le&&Le.isRegExp,St=Le&&Le.isSet,Ct=Le&&Le.isTypedArray;function Nt(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function bt(e,t,n,r){for(var i=-1,s=null==e?0:e.length;++i":">",'"':""","'":"'"});function sn(e){return"\\"+ct[e]}function an(e){return nt.test(e)}function on(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function cn(e,t){return function(n){return e(t(n))}}function un(e,t){for(var n=-1,r=e.length,i=0,a=[];++n",""":'"',"'":"'"}),_n=function e(t){var ye=(t=null==t?pt:_n.defaults(pt.Object(),t,_n.pick(pt,it))).Array,Se=t.Date,Ce=t.Error,Ne=t.Function,be=t.Math,Ie=t.Object,Oe=t.RegExp,ke=t.String,Le=t.TypeError,De=ye.prototype,Re=Ne.prototype,we=Ie.prototype,xe=t["__core-js_shared__"],Me=Re.toString,Pe=we.hasOwnProperty,Be=0,Fe=(Re=/[^.]+$/.exec(xe&&xe.keys&&xe.keys.IE_PROTO||""))?"Symbol(src)_1."+Re:"",Ue=we.toString,He=Me.call(Ie),Ge=pt._,je=Oe("^"+Me.call(Pe).replace(ne,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Re=_t?t.Buffer:n,Ye=t.Symbol,Ke=t.Uint8Array,We=Re?Re.allocUnsafe:n,Ve=cn(Ie.getPrototypeOf,Ie),$e=Ie.create,Qe=we.propertyIsEnumerable,ze=De.splice,Xe=Ye?Ye.isConcatSpreadable:n,et=Ye?Ye.iterator:n,nt=Ye?Ye.toStringTag:n,ct=function(){try{var e=fs(Ie,"defineProperty");return e({},"",{}),e}catch(e){}}(),ht=t.clearTimeout!==pt.clearTimeout&&t.clearTimeout,ft=Se&&Se.now!==pt.Date.now&&Se.now,dt=t.setTimeout!==pt.setTimeout&&t.setTimeout,mt=be.ceil,Et=be.floor,Tt=Ie.getOwnPropertySymbols,Re=Re?Re.isBuffer:n,Wt=t.isFinite,En=De.join,Tn=cn(Ie.keys,Ie),An=be.max,gn=be.min,vn=Se.now,yn=t.parseInt,Sn=be.random,Cn=De.reverse,Se=fs(t,"DataView"),bn=fs(t,"Map"),In=fs(t,"Promise"),On=fs(t,"Set"),t=fs(t,"WeakMap"),Ln=fs(Ie,"create"),Dn=t&&new t,Rn={},wn=Fs(Se),xn=Fs(bn),Mn=Fs(In),Pn=Fs(On),Bn=Fs(t),Ye=Ye?Ye.prototype:n,Un=Ye?Ye.valueOf:n,Hn=Ye?Ye.toString:n;function Gn(e){if(to(e)&&!Ya(e)&&!(e instanceof Kn)){if(e instanceof Yn)return e;if(Pe.call(e,"__wrapped__"))return Us(e)}return new Yn(e)}var jn=function(){function e(){}return function(t){if(!eo(t))return{};if($e)return $e(t);e.prototype=t;t=new e;return e.prototype=n,t}}();function qn(){}function Yn(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=n}function Kn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=d,this.__views__=[]}function Wn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t>>0,t>>>=0;for(var s=ye(i);++r>>1,a=e[s];null!==a&&!co(a)&&(n?a<=t:a>>0)?(e=Ao(e))&&("string"==typeof t||null!=t&&!so(t))&&!(t=li(t))&&an(e)?yi(pn(e),0,r):e.split(t,r):[]},Gn.spread=function(e,t){if("function"!=typeof e)throw new Le(r);return t=null==t?0:An(mo(t),0),Xr(function(n){var r=n[t],n=yi(n,0,t);return r&&xt(n,r),Nt(e,this,n)})},Gn.tail=function(e){var t=null==e?0:e.length;return t?ii(e,1,t):[]},Gn.take=function(e,t,r){return e&&e.length?ii(e,0,(t=r||t===n?1:mo(t))<0?0:t):[]},Gn.takeRight=function(e,t,r){var i=null==e?0:e.length;return i?ii(e,(t=i-(r||t===n?1:mo(t)))<0?0:t,i):[]},Gn.takeRightWhile=function(e,t){return e&&e.length?di(e,us(t,3),!1,!0):[]},Gn.takeWhile=function(e,t){return e&&e.length?di(e,us(t,3)):[]},Gn.tap=function(e,t){return t(e),e},Gn.throttle=function(e,t,n){var i=!0,s=!0;if("function"!=typeof e)throw new Le(r);return eo(n)&&(i="leading"in n?!!n.leading:i,s="trailing"in n?!!n.trailing:s),Da(e,t,{leading:i,maxWait:t,trailing:s})},Gn.thru=pa,Gn.toArray=fo,Gn.toPairs=Uo,Gn.toPairsIn=Ho,Gn.toPath=function(e){return Ya(e)?wt(e,Bs):co(e)?[e]:Li(Ps(Ao(e)))},Gn.toPlainObject=To,Gn.transform=function(e,t,n){var s,r=Ya(e),i=r||$a(e)||uo(e);return t=us(t,4),null==n&&(s=e&&e.constructor,n=i?r?new s:[]:eo(e)&&Xa(s)?jn(Ve(e)):{}),(i?It:vr)(e,function(e,r,i){return t(n,e,r,i)}),n},Gn.unary=function(e){return Ia(e,1)},Gn.union=ta,Gn.unionBy=na,Gn.unionWith=ra,Gn.uniq=function(e){return e&&e.length?hi(e):[]},Gn.uniqBy=function(e,t){return e&&e.length?hi(e,us(t,2)):[]},Gn.uniqWith=function(e,t){return t="function"==typeof t?t:n,e&&e.length?hi(e,n,t):[]},Gn.unset=function(e,t){return null==e||fi(e,t)},Gn.unzip=ia,Gn.unzipWith=sa,Gn.update=function(e,t,n){return null==e?e:pi(e,t,Ai(n))},Gn.updateWith=function(e,t,r,i){return i="function"==typeof i?i:n,null==e?e:pi(e,t,Ai(r),i)},Gn.values=Go,Gn.valuesIn=function(e){return null==e?[]:Zt(e,wo(e))},Gn.without=aa,Gn.words=Zo,Gn.wrap=function(e,t){return Ba(Ai(t),e)},Gn.xor=oa,Gn.xorBy=ca,Gn.xorWith=ua,Gn.zip=la,Gn.zipObject=function(e,t){return Ei(e||[],t||[],nr)},Gn.zipObjectDeep=function(e,t){return Ei(e||[],t||[],ei)},Gn.zipWith=ha,Gn.entries=Uo,Gn.entriesIn=Ho,Gn.extend=vo,Gn.extendWith=yo,cc(Gn,Gn),Gn.add=Tc,Gn.attempt=Jo,Gn.camelCase=jo,Gn.capitalize=qo,Gn.ceil=Ac,Gn.clamp=function(e,t,r){return r===n&&(r=t,t=n),r!==n&&(r=(r=Eo(r))==r?r:0),t!==n&&(t=(t=Eo(t))==t?t:0),cr(Eo(e),t,r)},Gn.clone=function(e){return ur(e,4)},Gn.cloneDeep=function(e){return ur(e,5)},Gn.cloneDeepWith=function(e,t){return ur(e,5,t="function"==typeof t?t:n)},Gn.cloneWith=function(e,t){return ur(e,4,t="function"==typeof t?t:n)},Gn.conformsTo=function(e,t){return null==t||lr(e,t,Ro(t))},Gn.deburr=Yo,Gn.defaultTo=function(e,t){return null==e||e!=e?t:e},Gn.divide=gc,Gn.endsWith=function(e,t,r){e=Ao(e),t=li(t);var i=e.length,i=r=r===n?i:cr(mo(r),0,i);return 0<=(r-=t.length)&&e.slice(r,i)==t},Gn.eq=Ha,Gn.escape=function(e){return(e=Ao(e))&&Q.test(e)?e.replace(V,rn):e},Gn.escapeRegExp=function(e){return(e=Ao(e))&&re.test(e)?e.replace(ne,"\\$&"):e},Gn.every=function(e,t,r){return(Ya(e)?kt:mr)(e,us(t=r&&gs(e,t,r)?n:t,3))},Gn.find=_a,Gn.findIndex=qs,Gn.findKey=function(e,t){return Ut(e,us(t,3),vr)},Gn.findLast=Ea,Gn.findLastIndex=Ys,Gn.findLastKey=function(e,t){return Ut(e,us(t,3),yr)},Gn.floor=vc,Gn.forEach=Ta,Gn.forEachRight=Aa,Gn.forIn=function(e,t){return null==e?e:Ar(e,us(t,3),wo)},Gn.forInRight=function(e,t){return null==e?e:gr(e,us(t,3),wo)},Gn.forOwn=function(e,t){return e&&vr(e,us(t,3))},Gn.forOwnRight=function(e,t){return e&&yr(e,us(t,3))},Gn.get=Io,Gn.gt=Ga,Gn.gte=ja,Gn.has=function(e,t){return null!=e&&_s(e,t,Or)},Gn.hasIn=Oo,Gn.head=Ws,Gn.identity=ic,Gn.includes=function(e,t,n,r){e=Wa(e)?e:Go(e),n=n&&!r?mo(n):0;r=e.length;return n<0&&(n=An(r+n,0)),oo(e)?n<=r&&-1=gn(t,n)&&e=this.__values__.length;return{done:e,value:e?n:this.__values__[this.__index__++]}},Gn.prototype.plant=function(e){for(var t,r=this;r instanceof qn;)var i=Us(r),s=(i.__index__=0,i.__values__=n,t?s.__wrapped__=i:t=i,i),r=r.__wrapped__;return s.__wrapped__=e,t},Gn.prototype.reverse=function(){var e=this.__wrapped__;return e instanceof Kn?(e=e,(e=(e=this.__actions__.length?new Kn(this):e).reverse()).__actions__.push({func:pa,args:[ea],thisArg:n}),new Yn(e,this.__chain__)):this.thru(ea)},Gn.prototype.toJSON=Gn.prototype.valueOf=Gn.prototype.value=function(){return mi(this.__wrapped__,this.__actions__)},Gn.prototype.first=Gn.prototype.head,et&&(Gn.prototype[et]=function(){return this}),Gn}();mt?((mt.exports=_n)._=_n,He._=_n):pt._=_n}.call(gr)}),dh=Sr(function(e,t){e.exports=function(e){var n;if("undefined"!=typeof window&&window.crypto&&(n=window.crypto),"undefined"!=typeof self&&self.crypto&&(n=self.crypto),!(n=!(n=!(n="undefined"!=typeof globalThis&&globalThis.crypto?globalThis.crypto:n)&&"undefined"!=typeof window&&window.msCrypto?window.msCrypto:n)&&void 0!==gr&&gr.crypto?gr.crypto:n))try{n=Zu}catch(e){}function r(){if(n){if("function"==typeof n.getRandomValues)try{return n.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof n.randomBytes)try{return n.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")}var i=Object.create||function(){function e(){}return function(t){return e.prototype=t,t=new e,e.prototype=null,t}}(),s={},a=s.lib={},o=a.Base={extend:function(e){var t=i(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),(t.init.prototype=t).$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},c=a.WordArray=o.extend({init:function(e,n){e=this.words=e||[],this.sigBytes=null!=n?n:4*e.length},toString:function(e){return(e||l).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes,i=e.sigBytes;if(this.clamp(),r%4)for(var s=0;s>>2]>>>24-s%4*8&255;t[r+s>>>2]|=a<<24-(r+s)%4*8}else for(var o=0;o>>2]=n[o>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=o.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n>>2]>>>24-i%4*8&255;r.push((s>>>4).toString(16)),r.push((15&s).toString(16))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new c.init(n,t/2)}},h=u.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i>>2]>>>24-i%4*8&255;r.push(String.fromCharCode(s))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new c.init(n,t)}},f=u.Utf8={stringify:function(e){try{return decodeURIComponent(escape(h.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return h.parse(unescape(encodeURIComponent(e)))}},p=a.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=f.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n,r=this._data,i=r.words,s=r.sigBytes,a=this.blockSize,o=s/(4*a),u=(t?e.ceil(o):e.max((0|o)-this._minBufferSize,0))*a,t=e.min(4*u,s);if(u){for(var h=0;h>>2]|=e[i]<<24-i%4*8;t.call(this,r,n)}else t.apply(this,arguments)}).prototype=e)}(),n.lib.WordArray)}),Sr(function(e,t){var n;e.exports=(n=dh,function(){var t=n.lib.WordArray,r=n.enc;function i(e){return e<<8&4278255360|e>>>8&16711935}r.Utf16=r.Utf16BE={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i>>2]>>>16-i%4*8&65535;r.push(String.fromCharCode(s))}return r.join("")},parse:function(e){for(var n=e.length,r=[],i=0;i>>1]|=e.charCodeAt(i)<<16-i%2*16;return t.create(r,2*n)}},r.Utf16LE={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],s=0;s>>2]>>>16-s%4*8&65535);r.push(String.fromCharCode(a))}return r.join("")},parse:function(e){for(var n=e.length,r=[],s=0;s>>1]|=i(e.charCodeAt(s)<<16-s%2*16);return t.create(r,2*n)}}}(),n.enc.Utf16)}),Sr(function(e,t){var n;e.exports=(n=dh,function(){var e=n,t=e.lib.WordArray;function r(e,n,r){for(var o,i=[],s=0,a=0;a>>6-a%4*2,i[s>>>2]|=o<<24-s%4*8,s++);return t.create(i,s)}e.enc.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,r=this._map;e.clamp();for(var i=[],s=0;s>>2]>>>24-s%4*8&255)<<16|(t[s+1>>>2]>>>24-(s+1)%4*8&255)<<8|t[s+2>>>2]>>>24-(s+2)%4*8&255,o=0;o<4&&s+.75*o>>6*(3-o)&63));var c=r.charAt(64);if(c)for(;i.length%4;)i.push(c);return i.join("")},parse:function(e){var t=e.length,n=this._map;if(!(i=this._reverseMap))for(var i=this._reverseMap=[],s=0;s>>6-a%4*2,i[s>>>2]|=o<<24-s%4*8,s++);return t.create(i,s)}e.enc.Base64url={stringify:function(e,t=!0){var n=e.words,r=e.sigBytes,i=t?this._safe_map:this._map;e.clamp();for(var s=[],a=0;a>>2]>>>24-a%4*8&255)<<16|(n[a+1>>>2]>>>24-(a+1)%4*8&255)<<8|n[a+2>>>2]>>>24-(a+2)%4*8&255,c=0;c<4&&a+.75*c>>6*(3-c)&63));var u=i.charAt(64);if(u)for(;s.length%4;)s.push(u);return s.join("")},parse:function(e,t=!0){var n=e.length,i=t?this._safe_map:this._map;if(!(s=this._reverseMap))for(var s=this._reverseMap=[],a=0;a>>24)|4278255360&(i<<24|i>>>8)}var s=this._hash.words,a=e[t+0],c=e[t+1],p=e[t+2],d=e[t+3],m=e[t+4],_=e[t+5],E=e[t+6],T=e[t+7],A=e[t+8],g=e[t+9],v=e[t+10],y=e[t+11],S=e[t+12],C=e[t+13],N=e[t+14],b=e[t+15],I=u(s[0],O=s[1],k=s[2],L=s[3],a,7,o[0]),L=u(L,I,O,k,c,12,o[1]),k=u(k,L,I,O,p,17,o[2]),O=u(O,k,L,I,d,22,o[3]);I=u(I,O,k,L,m,7,o[4]),L=u(L,I,O,k,_,12,o[5]),k=u(k,L,I,O,E,17,o[6]),O=u(O,k,L,I,T,22,o[7]),I=u(I,O,k,L,A,7,o[8]),L=u(L,I,O,k,g,12,o[9]),k=u(k,L,I,O,v,17,o[10]),O=u(O,k,L,I,y,22,o[11]),I=u(I,O,k,L,S,7,o[12]),L=u(L,I,O,k,C,12,o[13]),k=u(k,L,I,O,N,17,o[14]),I=l(I,O=u(O,k,L,I,b,22,o[15]),k,L,c,5,o[16]),L=l(L,I,O,k,E,9,o[17]),k=l(k,L,I,O,y,14,o[18]),O=l(O,k,L,I,a,20,o[19]),I=l(I,O,k,L,_,5,o[20]),L=l(L,I,O,k,v,9,o[21]),k=l(k,L,I,O,b,14,o[22]),O=l(O,k,L,I,m,20,o[23]),I=l(I,O,k,L,g,5,o[24]),L=l(L,I,O,k,N,9,o[25]),k=l(k,L,I,O,d,14,o[26]),O=l(O,k,L,I,A,20,o[27]),I=l(I,O,k,L,C,5,o[28]),L=l(L,I,O,k,p,9,o[29]),k=l(k,L,I,O,T,14,o[30]),I=h(I,O=l(O,k,L,I,S,20,o[31]),k,L,_,4,o[32]),L=h(L,I,O,k,A,11,o[33]),k=h(k,L,I,O,y,16,o[34]),O=h(O,k,L,I,N,23,o[35]),I=h(I,O,k,L,c,4,o[36]),L=h(L,I,O,k,m,11,o[37]),k=h(k,L,I,O,T,16,o[38]),O=h(O,k,L,I,v,23,o[39]),I=h(I,O,k,L,C,4,o[40]),L=h(L,I,O,k,a,11,o[41]),k=h(k,L,I,O,d,16,o[42]),O=h(O,k,L,I,E,23,o[43]),I=h(I,O,k,L,g,4,o[44]),L=h(L,I,O,k,S,11,o[45]),k=h(k,L,I,O,b,16,o[46]),I=f(I,O=h(O,k,L,I,p,23,o[47]),k,L,a,6,o[48]),L=f(L,I,O,k,T,10,o[49]),k=f(k,L,I,O,N,15,o[50]),O=f(O,k,L,I,_,21,o[51]),I=f(I,O,k,L,S,6,o[52]),L=f(L,I,O,k,d,10,o[53]),k=f(k,L,I,O,v,15,o[54]),O=f(O,k,L,I,c,21,o[55]),I=f(I,O,k,L,A,6,o[56]),L=f(L,I,O,k,b,10,o[57]),k=f(k,L,I,O,E,15,o[58]),O=f(O,k,L,I,C,21,o[59]),I=f(I,O,k,L,m,6,o[60]),L=f(L,I,O,k,y,10,o[61]),k=f(k,L,I,O,p,15,o[62]),O=f(O,k,L,I,g,21,o[63]),s[0]=s[0]+I|0,s[1]=s[1]+O|0,s[2]=s[2]+k|0,s[3]=s[3]+L|0},_doFinalize:function(){var t=this._data,n=t.words,r=8*this._nDataBytes,i=8*t.sigBytes,s=(n[i>>>5]|=128<<24-i%32,e.floor(r/4294967296));n[15+(64+i>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),n[14+(64+i>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(n.length+1),this._process();for(var s=this._hash,c=s.words,u=0;u<4;u++){var l=c[u];c[u]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return s},clone:function(){var e=s.clone.call(this);return e._hash=this._hash.clone(),e}}));function u(e,t,n,r,i,s,a){e=e+(t&n|~t&r)+i+a;return(e<>>32-s)+t}function l(e,t,n,r,i,s,a){e=e+(t&r|n&~r)+i+a;return(e<>>32-s)+t}function h(e,t,n,r,i,s,a){e=e+(t^n^r)+i+a;return(e<>>32-s)+t}function f(e,t,n,r,i,s,a){e=e+(n^(t|~r))+i+a;return(e<>>32-s)+t}t.MD5=s._createHelper(r),t.HmacMD5=s._createHmacHelper(r)}(Math),n.MD5)}),Sr(function(e,t){var n;e.exports=(n=dh,function(){var e=n,t=e.lib,r=t.WordArray,i=t.Hasher,t=e.algo,a=[],t=t.SHA1=i.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],s=n[2],o=n[3],c=n[4],u=0;u<80;u++){a[u]=u<16?0|e[t+u]:(l=a[u-3]^a[u-8]^a[u-14]^a[u-16])<<1|l>>>31;var l=(r<<5|r>>>27)+c+a[u];l+=u<20?1518500249+(i&s|~i&o):u<40?1859775393+(i^s^o):u<60?(i&s|i&o|s&o)-1894007588:(i^s^o)-899497514,c=o,o=s,s=i<<30|i>>>2,i=r,r=l}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+s|0,n[3]=n[3]+o|0,n[4]=n[4]+c|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[14+(64+r>>>9<<4)]=Math.floor(n/4294967296),t[15+(64+r>>>9<<4)]=n,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});e.SHA1=i._createHelper(t),e.HmacSHA1=i._createHmacHelper(t)}(),n.SHA1)}),Sr(function(e,t){var n;e.exports=(n=dh,function(e){var t=n,r=t.lib,i=r.WordArray,s=r.Hasher,r=t.algo,o=[],c=[],u=(!function(){function n(e){return 4294967296*(e-(0|e))|0}for(var r=2,i=0;i<64;)!function(t){for(var n=e.sqrt(t),r=2;r<=n;r++)if(!(t%r))return;return 1}(r)||(i<8&&(o[i]=n(e.pow(r,.5))),c[i]=n(e.pow(r,1/3)),i++),r++}(),[]),r=r.SHA256=s.extend({_doReset:function(){this._hash=new i.init(o.slice(0))},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],s=n[2],a=n[3],o=n[4],l=n[5],h=n[6],f=n[7],p=0;p<64;p++){u[p]=p<16?0|e[t+p]:(((d=u[p-15])<<25|d>>>7)^(d<<14|d>>>18)^d>>>3)+u[p-7]+(((d=u[p-2])<<15|d>>>17)^(d<<13|d>>>19)^d>>>10)+u[p-16];var d=r&i^r&s^i&s,g=f+((o<<26|o>>>6)^(o<<21|o>>>11)^(o<<7|o>>>25))+(o&l^~o&h)+c[p]+u[p],f=h,h=l,l=o,o=a+g|0,a=s,s=i,i=r,r=g+(((r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22))+d)|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+s|0,n[3]=n[3]+a|0,n[4]=n[4]+o|0,n[5]=n[5]+l|0,n[6]=n[6]+h|0,n[7]=n[7]+f|0},_doFinalize:function(){var t=this._data,n=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return n[i>>>5]|=128<<24-i%32,n[14+(64+i>>>9<<4)]=e.floor(r/4294967296),n[15+(64+i>>>9<<4)]=r,t.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var e=s.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=s._createHelper(r),t.HmacSHA256=s._createHmacHelper(r)}(Math),n.SHA256)}),Sr(function(e,t){var n,r,s,i;e.exports=(r=(n=e=dh).lib.WordArray,i=n.algo,s=i.SHA256,i=i.SHA224=s.extend({_doReset:function(){this._hash=new r.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var e=s._doFinalize.call(this);return e.sigBytes-=4,e}}),n.SHA224=s._createHelper(i),n.HmacSHA224=s._createHmacHelper(i),e.SHA224)}),Sr(function(e,t){var n;e.exports=(n=dh,function(){var e=n,t=e.lib.Hasher,r=e.x64,i=r.Word,s=r.WordArray,r=e.algo;function o(){return i.create.apply(i,arguments)}var c=[o(1116352408,3609767458),o(1899447441,602891725),o(3049323471,3964484399),o(3921009573,2173295548),o(961987163,4081628472),o(1508970993,3053834265),o(2453635748,2937671579),o(2870763221,3664609560),o(3624381080,2734883394),o(310598401,1164996542),o(607225278,1323610764),o(1426881987,3590304994),o(1925078388,4068182383),o(2162078206,991336113),o(2614888103,633803317),o(3248222580,3479774868),o(3835390401,2666613458),o(4022224774,944711139),o(264347078,2341262773),o(604807628,2007800933),o(770255983,1495990901),o(1249150122,1856431235),o(1555081692,3175218132),o(1996064986,2198950837),o(2554220882,3999719339),o(2821834349,766784016),o(2952996808,2566594879),o(3210313671,3203337956),o(3336571891,1034457026),o(3584528711,2466948901),o(113926993,3758326383),o(338241895,168717936),o(666307205,1188179964),o(773529912,1546045734),o(1294757372,1522805485),o(1396182291,2643833823),o(1695183700,2343527390),o(1986661051,1014477480),o(2177026350,1206759142),o(2456956037,344077627),o(2730485921,1290863460),o(2820302411,3158454273),o(3259730800,3505952657),o(3345764771,106217008),o(3516065817,3606008344),o(3600352804,1432725776),o(4094571909,1467031594),o(275423344,851169720),o(430227734,3100823752),o(506948616,1363258195),o(659060556,3750685593),o(883997877,3785050280),o(958139571,3318307427),o(1322822218,3812723403),o(1537002063,2003034995),o(1747873779,3602036899),o(1955562222,1575990012),o(2024104815,1125592928),o(2227730452,2716904306),o(2361852424,442776044),o(2428436474,593698344),o(2756734187,3733110249),o(3204031479,2999351573),o(3329325298,3815920427),o(3391569614,3928383900),o(3515267271,566280711),o(3940187606,3454069534),o(4118630271,4000239992),o(116418474,1914138554),o(174292421,2731055270),o(289380356,3203993006),o(460393269,320620315),o(685471733,587496836),o(852142971,1086792851),o(1017036298,365543100),o(1126000580,2618297676),o(1288033470,3409855158),o(1501505948,4234509866),o(1607167915,987167468),o(1816402316,1246189591)],u=[],r=(!function(){for(var e=0;e<80;e++)u[e]=o()}(),r.SHA512=t.extend({_doReset:function(){this._hash=new s.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],s=n[2],a=n[3],o=n[4],l=n[5],h=n[6],n=n[7],p=r.high,d=r.low,m=i.high,_=i.low,E=s.high,T=s.low,A=a.high,g=a.low,v=o.high,y=o.low,S=l.high,C=l.low,N=h.high,b=h.low,I=n.high,O=n.low,k=p,L=d,D=m,R=_,w=E,x=T,M=A,P=g,B=v,F=y,U=S,H=C,G=N,j=b,q=I,Y=O,K=0;K<80;K++){var W,V,$=u[K];K<16?(V=$.high=0|e[t+2*K],W=$.low=0|e[t+2*K+1]):(z=(Q=u[K-15]).high,Q=Q.low,te=(ee=u[K-2]).high,ee=ee.low,V=(V=(V=((z>>>1|Q<<31)^(z>>>8|Q<<24)^z>>>7)+(se=u[K-7]).high+((W=(Q=(Q>>>1|z<<31)^(Q>>>8|z<<24)^(Q>>>7|z<<25))+se.low)>>>0>>0?1:0))+((te>>>19|ee<<13)^(te<<3|ee>>>29)^te>>>6)+((W+=z=(ee>>>19|te<<13)^(ee<<3|te>>>29)^(ee>>>6|te<<26))>>>0>>0?1:0))+(se=u[K-16]).high+((W+=Q=se.low)>>>0>>0?1:0),$.high=V,$.low=W);var he,ee=B&U^~B&G,te=F&H^~F&j,z=k&D^k&w^D&w,se=(L>>>28|k<<4)^(L<<30|k>>>2)^(L<<25|k>>>7),Q=c[K],$=Q.high,ye=Q.low,Se=q+((B>>>14|F<<18)^(B>>>18|F<<14)^(B<<23|F>>>9))+((he=Y+((F>>>14|B<<18)^(F>>>18|B<<14)^(F<<23|B>>>9)))>>>0>>0?1:0),Ce=se+(L&R^L&x^R&x),q=G,Y=j,G=U,j=H,U=B,H=F,B=M+(Se=Se+ee+((he+=te)>>>0>>0?1:0)+$+((he+=ye)>>>0>>0?1:0)+V+((he+=W)>>>0>>0?1:0))+((F=P+he|0)>>>0

>>0?1:0)|0,M=w,P=x,w=D,x=R,D=k,R=L,k=Se+(((k>>>28|L<<4)^(k<<30|L>>>2)^(k<<25|L>>>7))+z+(Ce>>>0>>0?1:0))+((L=he+Ce|0)>>>0>>0?1:0)|0}d=r.low=d+L,r.high=p+k+(d>>>0>>0?1:0),_=i.low=_+R,i.high=m+D+(_>>>0>>0?1:0),T=s.low=T+x,s.high=E+w+(T>>>0>>0?1:0),g=a.low=g+P,a.high=A+M+(g>>>0

>>0?1:0),y=o.low=y+F,o.high=v+B+(y>>>0>>0?1:0),C=l.low=C+H,l.high=S+U+(C>>>0>>0?1:0),b=h.low=b+j,h.high=N+G+(b>>>0>>0?1:0),O=n.low=O+Y,n.high=I+q+(O>>>0>>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[30+(128+r>>>10<<5)]=Math.floor(n/4294967296),t[31+(128+r>>>10<<5)]=n,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=t.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32}));e.SHA512=t._createHelper(r),e.HmacSHA512=t._createHmacHelper(r)}(),n.SHA512)}),Sr(function(e,t){var n,i,s,o,r;e.exports=(r=(n=e=dh).x64,i=r.Word,s=r.WordArray,r=n.algo,o=r.SHA512,r=r.SHA384=o.extend({_doReset:function(){this._hash=new s.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var e=o._doFinalize.call(this);return e.sigBytes-=16,e}}),n.SHA384=o._createHelper(r),n.HmacSHA384=o._createHmacHelper(r),e.SHA384)}),Sr(function(e,t){var n;e.exports=(n=dh,function(e){var t=n,r=t.lib,i=r.WordArray,s=r.Hasher,a=t.x64.Word,r=t.algo,c=[],u=[],l=[],h=(!function(){for(var e=1,t=0,n=0;n<24;n++){c[e+5*t]=(n+1)*(n+2)/2%64;var r=(2*e+3*t)%5,e=t%5,t=r}for(e=0;e<5;e++)for(t=0;t<5;t++)u[e+5*t]=t+(2*e+3*t)%5*5;for(var i=1,s=0;s<24;s++){for(var p,o=0,h=0,f=0;f<7;f++)1&i&&((p=(1<>>24)|4278255360&(s<<24|s>>>8);(O=n[i]).high^=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),O.low^=s}for(var o=0;o<24;o++){for(var f=0;f<5;f++){for(var p=0,d=0,m=0;m<5;m++)p^=(O=n[f+5*m]).high,d^=O.low;var _=h[f];_.high=p,_.low=d}for(f=0;f<5;f++)for(var E=h[(f+4)%5],T=h[(f+1)%5],A=T.high,T=T.low,p=E.high^(A<<1|T>>>31),d=E.low^(T<<1|A>>>31),m=0;m<5;m++)(O=n[f+5*m]).high^=p,O.low^=d;for(var v=1;v<25;v++){var y=(O=n[v]).high,S=O.low,C=c[v],y=(d=C<32?(p=y<>>32-C,S<>>32-C):(p=S<>>64-C,y<>>64-C),h[u[v]]);y.high=p,y.low=d}var b=h[0],I=n[0];for(b.high=I.high,b.low=I.low,f=0;f<5;f++)for(m=0;m<5;m++){var O=n[v=f+5*m],k=h[v],L=h[(f+1)%5+5*m],D=h[(f+2)%5+5*m];O.high=k.high^~L.high&D.high,O.low=k.low^~L.low&D.low}O=n[0],b=l[o];O.high^=b.high,O.low^=b.low}},_doFinalize:function(){var t=this._data,n=t.words,r=(this._nDataBytes,8*t.sigBytes),s=32*this.blockSize;n[r>>>5]|=1<<24-r%32,n[(e.ceil((1+r)/s)*s>>>5)-1]|=128,t.sigBytes=4*n.length,this._process();for(var a=this._state,r=this.cfg.outputLength/8,c=r/8,u=[],l=0;l>>24)|4278255360&(f<<24|f>>>8);u.push(16711935&(h<<8|h>>>24)|4278255360&(h<<24|h>>>8)),u.push(f)}return new i.init(u,r)},clone:function(){for(var e=s.clone.call(this),t=e._state=this._state.slice(0),n=0;n<25;n++)t[n]=t[n].clone();return e}}));t.SHA3=s._createHelper(r),t.HmacSHA3=s._createHmacHelper(r)}(Math),n.SHA3)}),Sr(function(e,t){var n;e.exports=(n=dh,function(){var t=n,r=t.lib,i=r.WordArray,s=r.Hasher,r=t.algo,o=i.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),c=i.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),u=i.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),l=i.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),h=i.create([0,1518500249,1859775393,2400959708,2840853838]),f=i.create([1352829926,1548603684,1836072691,2053994217,0]),r=r.RIPEMD160=s.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var n=0;n<16;n++){var r=t+n,i=e[r];e[r]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}for(var s,a,p,g,v,I,O=this._hash.words,k=h.words,L=f.words,D=o.words,R=c.words,w=u.words,x=l.words,y=s=O[0],S=a=O[1],C=p=O[2],N=g=O[3],b=v=O[4],n=0;n<80;n+=1)I=(I=A(I=(I=s+e[t+D[n]]|0)+(n<16?(a^p^g)+k[0]:n<32?m(a,p,g)+k[1]:n<48?((a|~p)^g)+k[2]:n<64?E(a,p,g)+k[3]:(a^(p|~g))+k[4])|0,w[n]))+v|0,s=v,v=g,g=A(p,10),p=a,a=I,I=(I=A(I=(I=y+e[t+R[n]]|0)+(n<16?(S^(C|~N))+L[0]:n<32?E(S,C,N)+L[1]:n<48?((S|~C)^N)+L[2]:n<64?m(S,C,N)+L[3]:(S^C^N)+L[4])|0,x[n]))+b|0,y=b,b=N,N=A(C,10),C=S,S=I;I=O[1]+p+N|0,O[1]=O[2]+g+b|0,O[2]=O[3]+v+y|0,O[3]=O[4]+s+S|0,O[4]=O[0]+a+C|0,O[0]=I},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;t[r>>>5]|=128<<24-r%32,t[14+(64+r>>>9<<4)]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),e.sigBytes=4*(t.length+1),this._process();for(var r=this._hash,s=r.words,a=0;a<5;a++){var o=s[a];s[a]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8)}return r},clone:function(){var e=s.clone.call(this);return e._hash=this._hash.clone(),e}});function m(e,t,n){return e&t|~e&n}function E(e,t,n){return e&n|t&~n}function A(e,t){return e<>>32-t}t.RIPEMD160=s._createHelper(r),t.HmacRIPEMD160=s._createHmacHelper(r)}(),n.RIPEMD160)}),Sr(function(e,t){var i;e.exports=(e=dh.lib.Base,i=dh.enc.Utf8,void(dh.algo.HMAC=e.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=i.parse(t));var n=e.blockSize,r=4*n;(t=t.sigBytes>r?e.finalize(t):t).clamp();for(var e=this._oKey=t.clone(),t=this._iKey=t.clone(),o=e.words,c=t.words,u=0;u>>2];e.sigBytes-=t}},m=(r.BlockCipher=l.extend({cfg:l.cfg.extend({mode:o,padding:d}),reset:function(){l.reset.call(this);var e,t=this.cfg,n=t.iv,t=t.mode;this._xformMode==this._ENC_XFORM_MODE?e=t.createEncryptor:(e=t.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==e?this._mode.init(this,n&&n.words):(this._mode=e.call(t,this,n&&n.words),this._mode.__creator=e)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e,t=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(t.pad(this._data,this.blockSize),e=this._process(!0)):(e=this._process(!0),t.unpad(e)),e},blockSize:4}),r.CipherParams=i.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}})),o=(t.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext,e=e.salt;return(e?s.create([1398893684,1701076831]).concat(e).concat(t):t).toString(c)},parse:function(e){var t,e=c.parse(e),r=e.words;return 1398893684==r[0]&&1701076831==r[1]&&(t=s.create(r.slice(2,4)),r.splice(0,4),e.sigBytes-=16),m.create({ciphertext:e,salt:t})}},E=r.SerializableCipher=i.extend({cfg:i.extend({format:o}),encrypt:function(e,t,n,r){r=this.cfg.extend(r);var i=e.createEncryptor(n,r),t=i.finalize(t),i=i.cfg;return m.create({ciphertext:t,key:n,iv:i.iv,algorithm:e,mode:i.mode,padding:i.padding,blockSize:e.blockSize,formatter:r.format})},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),e.createDecryptor(n,r).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),d=(t.kdf={}).OpenSSL={execute:function(e,t,n,r){r=r||s.random(8);e=u.create({keySize:t+n}).compute(e,r),n=s.create(e.words.slice(t),4*n);return e.sigBytes=4*t,m.create({key:e,iv:n,salt:r})}},A=r.PasswordBasedCipher=E.extend({cfg:E.cfg.extend({kdf:d}),encrypt:function(e,t,n,r){n=(r=this.cfg.extend(r)).kdf.execute(n,e.keySize,e.ivSize),r.iv=n.iv,e=E.encrypt.call(this,e,t,n.key,r);return e.mixIn(n),e},decrypt:function(e,t,n,r){r=this.cfg.extend(r),t=this._parse(t,r.format);n=r.kdf.execute(n,e.keySize,e.ivSize,t.salt);return r.iv=n.iv,E.decrypt.call(this,e,t,n.key,r)}})}())}),Sr(function(e,t){var n;e.exports=((n=dh).mode.CFB=function(){var e=n.lib.BlockCipherMode.extend();function t(e,t,n,r){var i,s=this._iv;s?(i=s.slice(0),this._iv=void 0):i=this._prevBlock,r.encryptBlock(i,0);for(var a=0;a>24&255)?(n=e>>8&255,r=255&e,255===(t=e>>16&255)?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e=(e+=t<<16)+(n<<8)+r):e+=1<<24,e}function r(e){0===(e[0]=t(e[0]))&&(e[1]=t(e[1]))}var i=e.Encryptor=e.extend({processBlock:function(e,t){var n=this._cipher,i=n.blockSize,s=this._iv,a=this._counter,o=(s&&(a=this._counter=s.slice(0),this._iv=void 0),r(a),a.slice(0));n.encryptBlock(o,0);for(var c=0;c>>2]|=t<<24-n%4*8,e.sigBytes+=t},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},dh.pad.Ansix923)}),Sr(function(e,t){var n;e.exports=((n=dh).pad.Iso10126={pad:function(e,t){t*=4,t-=e.sigBytes%t;e.concat(n.lib.WordArray.random(t-1)).concat(n.lib.WordArray.create([t<<24],1))},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},n.pad.Iso10126)}),Sr(function(e,t){var n;e.exports=((n=dh).pad.Iso97971={pad:function(e,t){e.concat(n.lib.WordArray.create([2147483648],1)),n.pad.ZeroPadding.pad(e,t)},unpad:function(e){n.pad.ZeroPadding.unpad(e),e.sigBytes--}},n.pad.Iso97971)}),Sr(function(e,t){e.exports=(dh.pad.ZeroPadding={pad:function(e,t){t*=4;e.clamp(),e.sigBytes+=t-(e.sigBytes%t||t)},unpad:function(e){for(var t=e.words,n=e.sigBytes-1,n=e.sigBytes-1;0<=n;n--)if(t[n>>>2]>>>24-n%4*8&255){e.sigBytes=n+1;break}}},dh.pad.ZeroPadding)}),Sr(function(e,t){e.exports=(dh.pad.NoPadding={pad:function(){},unpad:function(){}},dh.pad.NoPadding)}),Sr(function(e,t){var r,i;e.exports=(r=(e=dh).lib.CipherParams,i=e.enc.Hex,e.format.Hex={stringify:function(e){return e.ciphertext.toString(i)},parse:function(e){e=i.parse(e);return r.create({ciphertext:e})}},e.format.Hex)}),Sr(function(e,t){var n;e.exports=(n=dh,function(){var e=n,t=e.lib.BlockCipher,r=e.algo,i=[],s=[],a=[],o=[],c=[],u=[],l=[],h=[],f=[],p=[],d=(!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;for(var n=0,r=0,t=0;t<256;t++){var d=r^r<<1^r<<2^r<<3^r<<4,m=(i[n]=d=d>>>8^255&d^99,e[s[d]=n]),_=e[m],E=e[_],T=257*e[d]^16843008*d;a[n]=T<<24|T>>>8,o[n]=T<<16|T>>>16,c[n]=T<<8|T>>>24,u[n]=T,l[d]=(T=16843009*E^65537*_^257*m^16843008*n)<<24|T>>>8,h[d]=T<<16|T>>>16,f[d]=T<<8|T>>>24,p[d]=T,n?(n=m^e[e[e[E^m]]],r^=e[e[r]]):n=r=1}}(),[0,1,2,4,8,16,32,64,128,27,54]),r=r.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,n=e.sigBytes/4,r=4*(1+(this._nRounds=6+n)),s=this._keySchedule=[],a=0;a>>24]<<24|i[u>>>16&255]<<16|i[u>>>8&255]<<8|i[255&u]):(u=i[(u=u<<8|u>>>24)>>>24]<<24|i[u>>>16&255]<<16|i[u>>>8&255]<<8|i[255&u],u^=d[a/n|0]<<24),s[a]=s[a-n]^u);for(var o=this._invKeySchedule=[],c=0;c>>24]]^h[i[u>>>16&255]]^f[i[u>>>8&255]]^p[i[255&u]]}}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,a,o,c,u,i)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,l,h,f,p,s),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,r,i,s,a,o){for(var c=this._nRounds,u=e[t]^n[0],l=e[t+1]^n[1],h=e[t+2]^n[2],f=e[t+3]^n[3],p=4,d=1;d>>24]^i[l>>>16&255]^s[h>>>8&255]^a[255&f]^n[p++],_=r[l>>>24]^i[h>>>16&255]^s[f>>>8&255]^a[255&u]^n[p++],E=r[h>>>24]^i[f>>>16&255]^s[u>>>8&255]^a[255&l]^n[p++],T=r[f>>>24]^i[u>>>16&255]^s[l>>>8&255]^a[255&h]^n[p++],u=m,l=_,h=E,f=T;m=(o[u>>>24]<<24|o[l>>>16&255]<<16|o[h>>>8&255]<<8|o[255&f])^n[p++],_=(o[l>>>24]<<24|o[h>>>16&255]<<16|o[f>>>8&255]<<8|o[255&u])^n[p++],E=(o[h>>>24]<<24|o[f>>>16&255]<<16|o[u>>>8&255]<<8|o[255&l])^n[p++],T=(o[f>>>24]<<24|o[u>>>16&255]<<16|o[l>>>8&255]<<8|o[255&h])^n[p++],e[t]=m,e[t+1]=_,e[t+2]=E,e[t+3]=T},keySize:8});e.AES=t._createHelper(r)}(),n.AES)}),Sr(function(e,t){var n;e.exports=(n=dh,function(){var e=n,t=e.lib,r=t.WordArray,t=t.BlockCipher,s=e.algo,a=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],o=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],c=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],u=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],l=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],h=s.DES=t.extend({_doReset:function(){for(var e=this._key.words,t=[],n=0;n<56;n++){var r=a[n]-1;t[n]=e[r>>>5]>>>31-r%32&1}for(var i=this._subKeys=[],s=0;s<16;s++){for(var u=i[s]=[],l=c[s],n=0;n<24;n++)u[n/6|0]|=t[(o[n]-1+l)%28]<<31-n%6,u[4+(n/6|0)]|=t[28+(o[n+24]-1+l)%28]<<31-n%6;for(u[0]=u[0]<<1|u[0]>>>31,n=1;n<7;n++)u[n]=u[n]>>>4*(n-1)+3;u[7]=u[7]<<5|u[7]>>>27}var h=this._invSubKeys=[];for(n=0;n<16;n++)h[n]=i[15-n]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._subKeys)},decryptBlock:function(e,t){this._doCryptBlock(e,t,this._invSubKeys)},_doCryptBlock:function(e,t,n){this._lBlock=e[t],this._rBlock=e[t+1],f.call(this,4,252645135),f.call(this,16,65535),p.call(this,2,858993459),p.call(this,8,16711935),f.call(this,1,1431655765);for(var r=0;r<16;r++){for(var i=n[r],s=this._lBlock,a=this._rBlock,o=0,c=0;c<8;c++)o|=u[c][((a^i[c])&l[c])>>>0];this._lBlock=a,this._rBlock=s^o}var h=this._lBlock;this._lBlock=this._rBlock,this._rBlock=h,f.call(this,1,1431655765),p.call(this,8,16711935),p.call(this,2,858993459),f.call(this,16,65535),f.call(this,4,252645135),e[t]=this._lBlock,e[t+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function f(e,t){t=(this._lBlock>>>e^this._rBlock)&t;this._rBlock^=t,this._lBlock^=t<>>e^this._lBlock)&t;this._lBlock^=t,this._rBlock^=t<192.");var t=e.slice(0,2),n=e.length<4?e.slice(0,2):e.slice(2,4),e=e.length<6?e.slice(0,2):e.slice(4,6);this._des1=h.createEncryptor(r.create(t)),this._des2=h.createEncryptor(r.create(n)),this._des3=h.createEncryptor(r.create(e))},encryptBlock:function(e,t){this._des1.encryptBlock(e,t),this._des2.decryptBlock(e,t),this._des3.encryptBlock(e,t)},decryptBlock:function(e,t){this._des3.decryptBlock(e,t),this._des2.encryptBlock(e,t),this._des1.decryptBlock(e,t)},keySize:6,ivSize:2,blockSize:2});e.TripleDES=t._createHelper(s)}(),n.TripleDES)}),Sr(function(e,t){var n;e.exports=(n=dh,function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=r.RC4=t.extend({_doReset:function(){for(var e=this._key,t=e.words,n=e.sigBytes,r=this._S=[],i=0;i<256;i++)r[i]=i;for(var i=0,s=0;i<256;i++){var a=i%n,a=t[a>>>2]>>>24-a%4*8&255,s=(s+r[i]+a)%256,a=r[i];r[i]=r[s],r[s]=a}this._i=this._j=0},_doProcessBlock:function(e,t){e[t]^=s.call(this)},keySize:8,ivSize:0});function s(){for(var e=this._S,t=this._i,n=this._j,r=0,i=0;i<4;i++){var n=(n+e[t=(t+1)%256])%256,s=e[t];e[t]=e[n],e[n]=s,r|=e[(e[t]+e[n])%256]<<24-8*i}return this._i=t,this._j=n,r}e.RC4=t._createHelper(i);r=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var e=this.cfg.drop;0>>24)|4278255360&(e[n]<<24|e[n]>>>8);for(var r=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],i=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]],n=this._b=0;n<4;n++)c.call(this);for(n=0;n<8;n++)i[n]^=r[n+4&7];if(t){var t=t.words,a=t[0],t=t[1],a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),t=16711935&(t<<8|t>>>24)|4278255360&(t<<24|t>>>8),h=a>>>16|4294901760&t,f=t<<16|65535&a;for(i[0]^=a,i[1]^=h,i[2]^=t,i[3]^=f,i[4]^=a,i[5]^=h,i[6]^=t,i[7]^=f,n=0;n<4;n++)c.call(this)}},_doProcessBlock:function(e,t){var n=this._X;c.call(this),i[0]=n[0]^n[5]>>>16^n[3]<<16,i[1]=n[2]^n[7]>>>16^n[5]<<16,i[2]=n[4]^n[1]>>>16^n[7]<<16,i[3]=n[6]^n[3]>>>16^n[1]<<16;for(var r=0;r<4;r++)i[r]=16711935&(i[r]<<8|i[r]>>>24)|4278255360&(i[r]<<24|i[r]>>>8),e[t+r]^=i[r]},blockSize:4,ivSize:2});function c(){for(var e=this._X,t=this._C,n=0;n<8;n++)s[n]=t[n];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0>>0?1:0)|0,this._b=t[7]>>>0>>0?1:0,n=0;n<8;n++){var r=e[n]+t[n],i=65535&r,o=r>>>16;a[n]=((i*i>>>17)+i*o>>>15)+o*o^((4294901760&r)*r|0)+((65535&r)*r|0)}e[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,e[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,e[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,e[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,e[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,e[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,e[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,e[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.Rabbit=t._createHelper(r)}(),n.Rabbit)}),Sr(function(e,t){var n;e.exports=(n=dh,function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=[],s=[],a=[],r=r.RabbitLegacy=t.extend({_doReset:function(){for(var e=this._key.words,t=this.cfg.iv,n=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],r=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]],i=this._b=0;i<4;i++)c.call(this);for(i=0;i<8;i++)r[i]^=n[i+4&7];if(t){var e=t.words,t=e[0],e=e[1],t=16711935&(t<<8|t>>>24)|4278255360&(t<<24|t>>>8),e=16711935&(e<<8|e>>>24)|4278255360&(e<<24|e>>>8),h=t>>>16|4294901760&e,f=e<<16|65535&t;for(r[0]^=t,r[1]^=h,r[2]^=e,r[3]^=f,r[4]^=t,r[5]^=h,r[6]^=e,r[7]^=f,i=0;i<4;i++)c.call(this)}},_doProcessBlock:function(e,t){var n=this._X;c.call(this),i[0]=n[0]^n[5]>>>16^n[3]<<16,i[1]=n[2]^n[7]>>>16^n[5]<<16,i[2]=n[4]^n[1]>>>16^n[7]<<16,i[3]=n[6]^n[3]>>>16^n[1]<<16;for(var r=0;r<4;r++)i[r]=16711935&(i[r]<<8|i[r]>>>24)|4278255360&(i[r]<<24|i[r]>>>8),e[t+r]^=i[r]},blockSize:4,ivSize:2});function c(){for(var e=this._X,t=this._C,n=0;n<8;n++)s[n]=t[n];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0>>0?1:0)|0,this._b=t[7]>>>0>>0?1:0,n=0;n<8;n++){var r=e[n]+t[n],i=65535&r,o=r>>>16;a[n]=((i*i>>>17)+i*o>>>15)+o*o^((4294901760&r)*r|0)+((65535&r)*r|0)}e[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,e[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,e[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,e[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,e[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,e[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,e[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,e[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.RabbitLegacy=t._createHelper(r)}(),n.RabbitLegacy)}),Sr(function(e,t){e.exports=dh})),_h=function(t,n,r,i){return"string"==typeof(t="undefined"!=typeof Buffer&&Buffer.isBuffer(t)?t.toString():t)?function(e,t,n,r){return t.xmlMode||t._useHtmlParser2?function(e,t){const n=new w(void 0,t);return new va(n,t).end(e),n.root}(e,t):ta(e,t,n,r)}(t,n,r,i):(n=t,!Array.isArray(n)&&O(n)?n:(Bn(n,r=new v([])),r))},Eh=function(e){return function r(s,a,o){if(void 0===o&&(o=!0),null==s)throw new Error("cheerio.load() expects a string");var c=rr(rr({},n),i(a)),u=e(s,c,o,null),l=function(n){function r(){return null!==n&&n.apply(this,arguments)||this}return nr(r,n),r.prototype._make=function(e,t){e=h(e,t);return e.prevObject=this,e},r.prototype._parse=function(t,n,r,i){return e(t,n,r,i)},r.prototype._render=function(e){return function(e,t){return t.xmlMode||t._useHtmlParser2?W(e,t):function(e){for(var t,n=("length"in e?e:[e]),r=0;r ratings[bestMatchIndex].rating && (bestMatchIndex = i); + } + return { ratings: ratings, bestMatch: ratings[bestMatchIndex], bestMatchIndex: bestMatchIndex }; +} +function lcs(str1, str2) { + if (!str1 || !str2) return { length: 0, sequence: '', offset: 0 }; + for (var sequence = '', str1Length = str1.length, str2Length = str2.length, num = new Array(str1Length), maxlen = 0, lastSubsBegin = 0, i = 0; i < str1Length; i++) { + for (var subArray = new Array(str2Length), j = 0; j < str2Length; j++) subArray[j] = 0; + num[i] = subArray; + } + for (var thisSubsBegin = null, i = 0; i < str1Length; i++) for (j = 0; j < str2Length; j++) str1[i] !== str2[j] ? (num[i][j] = 0) : ((num[i][j] = 0 === i || 0 === j ? 1 : 1 + num[i - 1][j - 1]), num[i][j] > maxlen && ((maxlen = num[i][j]), lastSubsBegin === (thisSubsBegin = i - num[i][j] + 1) ? (sequence += str1[i]) : ((lastSubsBegin = thisSubsBegin), (sequence = ''), (sequence += str1.substr(lastSubsBegin, i + 1 - lastSubsBegin))))); + return { length: maxlen, sequence: sequence, offset: thisSubsBegin }; +} +function findBestLCS(mainString, targetStrings) { + var results = []; + let bestMatchIndex = 0; + for (let i = 0; i < targetStrings.length; i++) { + var currentTargetString = targetStrings[i], + currentLCS = lcs(mainString, currentTargetString); + results.push({ target: currentTargetString, lcs: currentLCS }), currentLCS.length > results[bestMatchIndex].lcs.length && (bestMatchIndex = i); + } + return { allLCS: results, bestMatch: results[bestMatchIndex], bestMatchIndex: bestMatchIndex }; +} +export { compareTwoStrings, findBestMatch, findBestLCS }; diff --git a/JN/EXT/OPENJS/nivod_open.js b/JN/EXT/OPENJS/open/nivod_open.js similarity index 100% rename from JN/EXT/OPENJS/nivod_open.js rename to JN/EXT/OPENJS/open/nivod_open.js diff --git a/JN/EXT/OPENJS/open/package-lock.json b/JN/EXT/OPENJS/open/package-lock.json new file mode 100644 index 00000000..54039cc8 --- /dev/null +++ b/JN/EXT/OPENJS/open/package-lock.json @@ -0,0 +1,342 @@ +{ + "name": "CatVodOpenJSSpider", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "CatVodOpenJSSpider", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "axios": "^1.4.0", + "qs": "^6.11.2" + }, + "devDependencies": { + "@types/node": "^20.1.5", + "uglify-js": "^3.17.4" + } + }, + "node_modules/@types/node": { + "version": "20.4.2", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.4.2.tgz", + "integrity": "sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmmirror.com/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + } + }, + "dependencies": { + "@types/node": { + "version": "20.4.2", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.4.2.tgz", + "integrity": "sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "qs": { + "version": "6.11.2", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmmirror.com/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true + } + } +} diff --git a/JN/EXT/OPENJS/open/package.json b/JN/EXT/OPENJS/open/package.json new file mode 100644 index 00000000..1482d1b1 --- /dev/null +++ b/JN/EXT/OPENJS/open/package.json @@ -0,0 +1,21 @@ +{ + "name": "CatVodOpenJSSpider", + "version": "1.0.0", + "description": "", + "main": "app.js", + "type": "module", + "directories": { + "lib": "lib" + }, + "scripts": {}, + "author": "", + "license": "ISC", + "dependencies": { + "axios": "^1.4.0", + "qs": "^6.11.2" + }, + "devDependencies": { + "@types/node": "^20.1.5", + "uglify-js": "^3.17.4" + } +} diff --git a/JN/EXT/OPENJS/open/test.js b/JN/EXT/OPENJS/open/test.js new file mode 100644 index 00000000..8efb6070 --- /dev/null +++ b/JN/EXT/OPENJS/open/test.js @@ -0,0 +1,9 @@ +import {} from './wrapper/index.js'; + +// import { test } from './testVideo.js'; +import { test } from './testAlist.js'; + +(async function () { + await test(); + debugger; +})(); diff --git a/JN/EXT/OPENJS/open/testAlist.js b/JN/EXT/OPENJS/open/testAlist.js new file mode 100644 index 00000000..fa328178 --- /dev/null +++ b/JN/EXT/OPENJS/open/testAlist.js @@ -0,0 +1,72 @@ +import { __jsEvalReturn } from './alist_open.js'; + +var spider = __jsEvalReturn(); + +async function test() { + await spider.init({ + skey: 'siteKey', + ext: [ + { + name: '🙋丫仙女', + server: 'http://v.elizen.me/', + startPage: '/', + showAll: false, + search: true, + headers: { + Authorization: '', + }, + params: { + '/abc': { + password: '123', + }, + '/abc/abc': { + password: '123', + }, + }, + }, + { + name: '🐋一只鱼', + server: 'https://alist.youte.ml', + }, + { + name: '🌊七米蓝', + server: 'https://al.chirmyram.com', + }, + { + name: '🐉神族九帝', + server: 'https://alist.shenzjd.com', + }, + { + name: '☃️姬路白雪', + server: 'https://pan.jlbx.xyz', + }, + { + name: '✨星梦', + server: 'https://pan.bashroot.top', + }, + { + name: '💢repl', + server: 'https://ali.liucn.repl.co', + }, + { + name: '💦讯维云盘', + server: 'https://pan.xwbeta.com', + }, + ], + }); + + var files = JSON.parse(await spider.dir('/')); + console.log(files); + + files = JSON.parse(await spider.dir(files.list[0].path)); + console.log(files); + + // files = JSON.parse(await spider.dir('/🙋丫仙女/电视剧/欧美/4K/00 漫威衍生美剧/L 猎鹰与冬兵4K(2021)【美剧】豆瓣评分:7.5/')); + // console.log(files); + + var fileInfo = JSON.parse(await spider.file('/💦讯维云盘/热播短剧/傲世神尊/01.mp4')); + console.log(fileInfo); + +} + +export { test }; diff --git a/JN/EXT/OPENJS/open/testVideo.js b/JN/EXT/OPENJS/open/testVideo.js new file mode 100644 index 00000000..a2f61e60 --- /dev/null +++ b/JN/EXT/OPENJS/open/testVideo.js @@ -0,0 +1,51 @@ +import { __jsEvalReturn } from './kunyu77_open.js'; + +var spider = __jsEvalReturn(); + +async function test() { + var spType = null; + var spVid = null; + spType = '2'; + // spVid = '95873'; + + await spider.init({ skey: 'siteKey', ext: '' }); + var classes = JSON.parse(await spider.home(true)); + console.log(classes); + var homeVod = JSON.parse(await spider.homeVod()); + console.log(homeVod); + if (classes.class && classes.class.length > 0) { + var page = JSON.parse(await spider.category(spType || classes.class[0].type_id, 0, undefined, {})); + console.log(page); + if (page.list && page.list.length > 0) { + for (const k in page.list) { + if (k >= 5) break; + var detail = JSON.parse(await spider.detail(spVid || page.list[k].vod_id)); + console.log(detail); + if (detail.list && detail.list.length > 0) { + var pFlag = detail.list[0].vod_play_from.split('$$$'); + var pUrls = detail.list[0].vod_play_url.split('$$$'); + if (pFlag.length > 0 && pUrls.length > 0) { + for (const i in pFlag) { + var flag = pFlag[i]; + var urls = pUrls[i].split('#'); + if (urls.length > 0) { + var url = urls[0].split('$')[1]; + console.log(flag, url); + var playUrl = await spider.play(flag, url, []); + console.log(playUrl); + } + } + } + } + if (spVid) break; + } + } + } + var search = JSON.parse(await spider.search('奥特曼')); + console.log(search); + + search = JSON.parse(await spider.search('喜欢')); + console.log(search); +} + +export { test }; diff --git a/JN/EXT/OPENJS/open/wrapper/index.js b/JN/EXT/OPENJS/open/wrapper/index.js new file mode 100644 index 00000000..a08bbdfc --- /dev/null +++ b/JN/EXT/OPENJS/open/wrapper/index.js @@ -0,0 +1,266 @@ +// !!!!! Do not use in release mode. Just a native inject fake wrapper for test spider. !!!!! +// !!!!! Do not use in release mode. Just a native inject fake wrapper for test spider. !!!!! +// !!!!! Do not use in release mode. Just a native inject fake wrapper for test spider. !!!!! +import axios from 'axios'; +import crypto from 'crypto'; +import https from 'https'; +import fs from 'node:fs'; +import qs from 'qs'; +import { Uri, _ } from '../lib/cat.js'; + +const confs = {}; + +function initLocalStorage(storage) { + if (!_.has(confs, storage)) { + if (!fs.existsSync('local')) { + fs.mkdirSync('local'); + } + + const storagePath = 'local/js_' + storage; + + if (!fs.existsSync(storagePath)) { + fs.writeFileSync(storagePath, '{}'); + confs[storage] = {}; + } else { + confs[storage] = JSON.parse(fs.readFileSync(storagePath).toString()); + } + } +} + +function localGet(storage, key) { + initLocalStorage(storage); + return _.get(confs[storage], key, ''); +} + +function localSet(storage, key, value) { + initLocalStorage(storage); + confs[storage][key] = value; + fs.writeFileSync('local/js_' + storage, JSON.stringify(confs[storage])); +} + +async function request(url, opt) { + try { + var data = opt ? opt.data || null : null; + var postType = opt ? opt.postType || null : null; + var returnBuffer = opt ? opt.buffer || 0 : 0; + var timeout = opt ? opt.timeout || 5000 : 5000; + + var headers = opt ? opt.headers || {} : {}; + if (postType == 'form') { + headers['Content-Type'] = 'application/x-www-form-urlencoded'; + + if (data != null) { + data = qs.stringify(data, { encode: false }); + } + } + let respType = returnBuffer == 1 || returnBuffer == 2 ? 'arraybuffer' : undefined; + var resp = await axios(url, { + responseType: respType, + method: opt ? opt.method || 'get' : 'get', + headers: headers, + data: data, + timeout: timeout, + httpsAgent: https.Agent({ + rejectUnauthorized: false, + }), + }); + var data = resp.data; + + var resHeader = {}; + for (const hks of resp.headers) { + var v = hks[1]; + resHeader[hks[0]] = Array.isArray(v) ? (v.length == 1 ? v[0] : v) : v; + } + + if (!returnBuffer) { + if (typeof data === 'object') { + data = JSON.stringify(data); + } + } else if (returnBuffer == 1) { + return { code: resp.status, headers: resHeader, content: data }; + } else if (returnBuffer == 2) { + return { code: resp.status, headers: resHeader, content: data.toString('base64') }; + } + return { code: resp.status, headers: resHeader, content: data }; + } catch (error) { + console.error(error); + } + return { headers: {}, content: '' }; +} + +function base64EncodeBuf(buff, urlsafe = false) { + return buff.toString(urlsafe ? 'base64url' : 'base64'); +} + +function base64Encode(text, urlsafe = false) { + return base64EncodeBuf(Buffer.from(text, 'utf8'), urlsafe); +} + +function base64DecodeBuf(text) { + return Buffer.from(text, 'base64'); +} + +function base64Decode(text) { + return base64DecodeBuf(text).toString('utf8'); +} + +function md5(text) { + return crypto.createHash('md5').update(Buffer.from(text, 'utf8')).digest('hex'); +} + +function aes(mode, encrypt, input, inBase64, key, iv, outBase64) { + if (iv.length == 0) iv = null; + try { + if (mode.startsWith('AES/CBC')) { + switch (key.length) { + case 16: + mode = 'aes-128-cbc'; + break; + case 32: + mode = 'aes-256-cbc'; + break; + } + } else if (mode.startsWith('AES/ECB')) { + switch (key.length) { + case 16: + mode = 'aes-128-ecb'; + break; + case 32: + mode = 'aes-256-ecb'; + break; + } + } + const inBuf = inBase64 ? base64DecodeBuf(input) : Buffer.from(input, 'utf8'); + let keyBuf = Buffer.from(key); + if (keyBuf.length < 16) keyBuf = Buffer.concat([keyBuf], 16); + let ivBuf = iv == null ? Buffer.alloc(0) : Buffer.from(iv); + if (iv != null && ivBuf.length < 16) ivBuf = Buffer.concat([ivBuf], 16); + const cipher = encrypt ? crypto.createCipheriv(mode, keyBuf, ivBuf) : crypto.createDecipheriv(mode, keyBuf, ivBuf); + const outBuf = Buffer.concat([cipher.update(inBuf), cipher.final()]); + return outBase64 ? base64EncodeBuf(outBuf) : outBuf.toString('utf8'); + } catch (error) { + console.log(error); + } + return ''; +} + +function des(mode, encrypt, input, inBase64, key, iv, outBase64) { + try { + if (mode.startsWith('DESede/CBC')) { + // https://stackoverflow.com/questions/29831300/convert-desede-ecb-nopadding-algorithm-written-in-java-into-nodejs-using-crypto + switch (key.length) { + case 16: + mode = 'des-ede-cbc'; + break; + case 24: + mode = 'des-ede3-cbc'; + break; + } + } + const inBuf = inBase64 ? base64DecodeBuf(input) : Buffer.from(input, 'utf8'); + let keyBuf = Buffer.from(key); + if (keyBuf.length < 16) keyBuf = Buffer.concat([keyBuf], 16); + let ivBuf = iv == null ? Buffer.alloc(0) : Buffer.from(iv); + if (iv != null && ivBuf.length < 8) ivBuf = Buffer.concat([ivBuf], 8); + const cipher = encrypt ? crypto.createCipheriv(mode, keyBuf, ivBuf) : crypto.createDecipheriv(mode, keyBuf, ivBuf); + const outBuf = Buffer.concat([cipher.update(inBuf), cipher.final()]); + return outBase64 ? base64EncodeBuf(outBuf) : outBuf.toString('utf8'); + } catch (error) { + console.log(error); + } + return ''; +} + +// pkcs8 only +function rsa(mode, pub, encrypt, input, inBase64, key, outBase64) { + try { + let pd = undefined; + const keyObj = pub ? crypto.createPublicKey(key) : crypto.createPrivateKey(key); + if (!keyObj.asymmetricKeyDetails || !keyObj.asymmetricKeyDetails.modulusLength) return ''; + const moduleLen = keyObj.asymmetricKeyDetails.modulusLength; + let blockLen = moduleLen / 8; + switch (mode) { + case 'RSA/PKCS1': + pd = crypto.constants.RSA_PKCS1_PADDING; + blockLen = encrypt ? blockLen - 11 : blockLen; + break; + case 'RSA/None/NoPadding': + pd = crypto.constants.RSA_NO_PADDING; + break; + case 'RSA/None/OAEPPadding': + pd = crypto.constants.RSA_PKCS1_OAEP_PADDING; + blockLen = encrypt ? blockLen - 41 : blockLen; + break; + default: + throw Error('not support ' + mode); + } + let inBuf = inBase64 ? base64DecodeBuf(input) : Buffer.from(input, 'utf8'); + let bufIdx = 0; + let outBuf = Buffer.alloc(0); + while (bufIdx < inBuf.length) { + const bufEndIdx = Math.min(bufIdx + blockLen, inBuf.length); + let tmpInBuf = inBuf.subarray(bufIdx, bufEndIdx); + if (pd == crypto.constants.RSA_NO_PADDING) { + if (tmpInBuf.length < blockLen) { + tmpInBuf = Buffer.concat([Buffer.alloc(128 - tmpInBuf.length), tmpInBuf]); + } + } + let tmpBuf; + if (pub) { + tmpBuf = encrypt ? crypto.publicEncrypt({ key: keyObj, padding: pd }, tmpInBuf) : crypto.publicDecrypt({ key: keyObj, padding: pd }, tmpInBuf); + } else { + tmpBuf = encrypt ? crypto.privateEncrypt({ key: keyObj, padding: pd }, tmpInBuf) : crypto.privateDecrypt({ key: keyObj, padding: pd }, tmpInBuf); + } + bufIdx = bufEndIdx; + outBuf = Buffer.concat([outBuf, tmpBuf]); + } + return outBase64 ? base64EncodeBuf(outBuf) : outBuf.toString('utf8'); + } catch (error) { + console.log(error); + } + return ''; +} + +var charStr = 'abacdefghjklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789'; + +function randStr(len, withNum) { + var _str = ''; + let containsNum = withNum === undefined ? true : withNum; + for (var i = 0; i < len; i++) { + let idx = _.random(0, containsNum ? charStr.length - 1 : charStr.length - 11); + _str += charStr[idx]; + } + return _str; +} + +globalThis.local = { + get: async function (storage, key) { + return localGet(storage, key); + }, + set: async function (storage, key, val) { + localSet(storage, key, val); + }, +}; + +globalThis.md5X = md5; +globalThis.rsaX = rsa; +globalThis.aesX = aes; +globalThis.desX = des; + +globalThis.req = request; + +globalThis.url2Proxy = async function (type, url, headers) { + let hd = Object.keys(headers).length == 0 ? '_' : encodeURIComponent(JSON.stringify(headers)); + let uri = new Uri(url); + let path = uri.path(); + path = path.substring(path.lastIndexOf('/')); + let ext = path.indexOf('.') >= 0 ? path.substring(path.indexOf('.')) : '.bin'; + return 'http://127.0.0.1:13333/up/' + randStr(6) + '/' + type + '/' + hd + '/' + encodeURIComponent(url) + '/' + ext; +}; + +globalThis.js2Proxy = async function (dynamic, siteType, site, url, headers) { + let hd = Object.keys(headers).length == 0 ? '_' : encodeURIComponent(JSON.stringify(headers)); + return (dynamic ? 'js2p://_WEB_/' : 'http://127.0.0.1:13333/jp/') + randStr(6) + '/' + siteType + '/' + site + '/' + hd + '/' + encodeURIComponent(url); +}; + +export default {}; diff --git a/JN/EXT/OPENJS/sniffer/README.md b/JN/EXT/OPENJS/sniffer/README.md new file mode 100644 index 00000000..6fd87099 --- /dev/null +++ b/JN/EXT/OPENJS/sniffer/README.md @@ -0,0 +1,11 @@ +## Standalone windows & macos sniffer server base on electron. + +`npm install` + +`npm run start` + +`curl http://127.0.0.1:8887/?url=https://v.qq.com/x/page/i3038urj2mt.html` + +`curl http://127.0.0.1:8887/?url=http://www.mgtv.com/v/1/290346/f/3664551.html` + +`curl http://127.0.0.1:8887/?url=https://555dy.cc/vodplay/414521-1-1.html` \ No newline at end of file diff --git a/JN/EXT/OPENJS/sniffer/config.html b/JN/EXT/OPENJS/sniffer/config.html new file mode 100644 index 00000000..e844e02a --- /dev/null +++ b/JN/EXT/OPENJS/sniffer/config.html @@ -0,0 +1,43 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/JN/EXT/OPENJS/sniffer/config.js b/JN/EXT/OPENJS/sniffer/config.js new file mode 100644 index 00000000..3e8e90bc --- /dev/null +++ b/JN/EXT/OPENJS/sniffer/config.js @@ -0,0 +1,8 @@ +const { contextBridge, ipcRenderer } = require('electron'); + +contextBridge.exposeInMainWorld('msg_center', { + send: (...args) => ipcRenderer.send('msg', ...args), + on: (fn) => { + ipcRenderer.on('msg', (event, ...args) => fn(event, ...args)); + }, +}); diff --git a/JN/EXT/OPENJS/sniffer/index.js b/JN/EXT/OPENJS/sniffer/index.js new file mode 100644 index 00000000..cdad4d82 --- /dev/null +++ b/JN/EXT/OPENJS/sniffer/index.js @@ -0,0 +1,182 @@ +const os = require('os'); +const { app, session, BrowserWindow, ipcMain } = require('electron'); +const pie = require('puppeteer-in-electron'); +const puppeteer = require('puppeteer-core'); +const http = require('http'); +const Store = require('electron-store'); +const store = new Store(); + +const urlRegex = 'http((?!http).){12,}?\\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg|m4a|mp3)\\?.*|http((?!http).){12,}\\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg|m4a|mp3)|http((?!http).)*?video/tos*'; + +async function trySniffer(url) { + const promise = new Promise(async (resolve, reject) => { + try { + let timeout = setTimeout(() => { + timeout = null; + resolve({ code: 500 }); + page.close(); + }, 15000); + const browser = await pie.connect(app, puppeteer); + const window = new BrowserWindow({ + show: false, + }); + // window.webContents.openDevTools(); + const page = await pie.getPage(browser, window); + await page.setRequestInterception(true); + page.on('request', (req) => { + if (!timeout) req.abort().catch((err) => console.error(err)); + var reqUrl = req.url(); + if (reqUrl.match(urlRegex)) { + if (reqUrl.indexOf('url=http') < 0 && reqUrl.indexOf('v=http') < 0 && reqUrl.indexOf('.css') < 0 && reqUrl.indexOf('.html') < 0) { + console.log(req.headers()); + console.log(reqUrl); + const headers = req.headers(); + const header = {}; + if (headers['referer']) header['referer'] = headers['referer']; + if (headers['user-agent']) header['user-agent'] = headers['user-agent']; + resolve({ code: 200, url: reqUrl, header: header }); + req.abort().catch((err) => console.error(err)); + clearTimeout(timeout); + timeout = null; + page.close(); + return; + } + } + if (req.isInterceptResolutionHandled()) return; + if (req.resourceType() == 'image') req.abort().catch((err) => console.error(err)); + else req.continue().catch((err) => console.error(err)); + }); + await page.setUserAgent('Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1'); + await page.goto(url).catch((err) => {}); + } catch (e) { + console.error(e); + resolve({ code: 500 }); + } + }); + return promise; +} + +pie.initialize(app); + +let httpServer = null; +const httpServerSockets = new Set(); + +const createMain = async () => { + // await session.defaultSession.clearCache(); + const mainWindow = new BrowserWindow({ + show: false, + width: 480, + resizable: false, + height: 300, + webPreferences: { + preload: __dirname + '/config.js', + }, + }); + mainWindow.removeMenu(); + + const defaultPort = 8889; + + function startServer() { + if (httpServer) { + return; + } + httpServerSockets.clear(); + const requestListener = async function (req, res) { + if (!req.url.startsWith('/?url=')) { + res.writeHead(500); + res.end('Url must /?url=http*****'); + return; + } + const sniffUrl = req.url.substring(6).trim(); + const result = await trySniffer(sniffUrl); + res.writeHead(200); + res.end(JSON.stringify(result)); + }; + httpServer = http.createServer(requestListener); + const port = store.get('port', defaultPort); + store.set('port', port); + httpServer.on('error', (e) => { + httpServer = null; + mainWindow.webContents.send('msg', { + code: 201, + }); + }); + httpServer.on('connection', (socket) => { + httpServerSockets.add(socket); + httpServer.once('close', () => { + httpServerSockets.delete(socket); + }); + }); + httpServer.listen(port, '0.0.0.0', () => { + console.log(`Server is running on`); + console.log(`\thttp://127.0.0.1:${port}`); + const interfaces = os.networkInterfaces(); + for (let intf in interfaces) { + for (let i in interfaces[intf]) { + let address = interfaces[intf][i]; + if (address.family === 'IPv4' && !address.internal) { + console.log(`\thttp://${address.address}:${port}`); + } + } + } + mainWindow.webContents.send('msg', { + code: 200, + }); + }); + } + + function stopServer() { + if (httpServer) { + for (const socket of httpServerSockets) { + socket.destroy(); + httpServerSockets.delete(socket); + } + httpServer.close(); + httpServerSockets.clear(); + httpServer = null; + } + mainWindow.webContents.send('msg', { + code: 201, + }); + } + // mainWindow.webContents.openDevTools(); + ipcMain.on('msg', async (event, msg) => { + switch (msg.code) { + case 100: { + const port = store.get('port', defaultPort); + mainWindow.webContents.send('msg', { + code: 100, + cfg: { + port: port, + }, + }); + startServer(); + break; + } + case 200: { + const port = msg.cfg.port; + store.set('port', port); + startServer(); + break; + } + case 201: + stopServer(); + break; + default: + break; + } + console.log(msg); + }); + await mainWindow.loadFile(__dirname + '/config.html'); + mainWindow.show(); +}; + +app.whenReady().then(() => { + createMain(); +}); + +app.on('window-all-closed', () => { + if (process.platform !== 'darwin') { + app.quit(); + } +}); diff --git a/JN/EXT/OPENJS/sniffer/jquery.min.js b/JN/EXT/OPENJS/sniffer/jquery.min.js new file mode 100644 index 00000000..e7e29d5b --- /dev/null +++ b/JN/EXT/OPENJS/sniffer/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.7.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.0",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},R=function(){V()},M=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&z(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function X(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&M(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function U(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function z(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",R),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="",le.option=!!xe.lastChild;var ke={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Me(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="

",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return R(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return R(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@puppeteer/browsers": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/@puppeteer/browsers/-/browsers-0.5.0.tgz", + "integrity": "sha512-Uw6oB7VvmPRLE4iKsjuOh8zgDabhNX67dzo8U/BB0f9527qx+4eeUs+korU98OhG5C4ubg7ufBgVi63XYwS6TQ==", + "dependencies": { + "debug": "4.3.4", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "yargs": "17.7.1" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=14.1.0" + }, + "peerDependencies": { + "typescript": ">= 4.7.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@puppeteer/browsers/node_modules/yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/async-retry": { + "version": "1.4.5", + "resolved": "https://registry.npmmirror.com/@types/async-retry/-/async-retry-1.4.5.tgz", + "integrity": "sha512-YrdjSD+yQv7h6d5Ip+PMxh3H6ZxKyQk0Ts+PvaNRInxneG9PFVZjFg77ILAN+N6qYf7g4giSJ1l+ZjQ1zeegvA==", + "dependencies": { + "@types/retry": "*" + } + }, + "node_modules/@types/node": { + "version": "16.18.38", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-16.18.38.tgz", + "integrity": "sha512-6sfo1qTulpVbkxECP+AVrHV9OoJqhzCsfTNp5NIG+enM4HyM3HvZCO798WShIXBN0+QtDIcutJCjsVYnQP5rIQ==" + }, + "node_modules/@types/node-fetch": { + "version": "2.6.4", + "resolved": "https://registry.npmmirror.com/@types/node-fetch/-/node-fetch-2.6.4.tgz", + "integrity": "sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==", + "dependencies": { + "@types/node": "*", + "form-data": "^3.0.0" + } + }, + "node_modules/@types/node-fetch/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/puppeteer": { + "version": "1.20.10", + "resolved": "https://registry.npmmirror.com/@types/puppeteer/-/puppeteer-1.20.10.tgz", + "integrity": "sha512-3tlzJ9+z8rMvBDzHPv4Q4LCgBwDRvuoMxThkr+BqcbbNjsBkL/enFf6m+MDJke7vJT4i22ojB8yb3UpibiuBWg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/puppeteer-core": { + "version": "1.20.0", + "resolved": "https://registry.npmmirror.com/@types/puppeteer-core/-/puppeteer-core-1.20.0.tgz", + "integrity": "sha512-oYsusroRxCydDjKlO9sG41xFFa+PlJr0ZTvCzA97z02PXS9Q3YxyEHvHruUdPZgAxaqwoe96kh66Ni1+fKzuPw==", + "dependencies": { + "@types/puppeteer": "^1" + } + }, + "node_modules/@types/retry": { + "version": "0.12.2", + "resolved": "https://registry.npmmirror.com/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==" + }, + "node_modules/@types/uuid": { + "version": "3.4.10", + "resolved": "https://registry.npmmirror.com/@types/uuid/-/uuid-3.4.10.tgz", + "integrity": "sha512-BgeaZuElf7DEYZhWYDTc/XcLZXdVgFkVSTa13BqKvbnmUrxr3TJFKofUxCtDO9UQOdhnV+HPOESdHiHKZOJV1A==" + }, + "node_modules/@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/async-retry": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "dependencies": { + "retry": "0.13.1" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/atomically": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/atomically/-/atomically-1.7.0.tgz", + "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==", + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "optional": true + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "engines": { + "node": "*" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/chromium-bidi": { + "version": "0.4.7", + "resolved": "https://registry.npmmirror.com/chromium-bidi/-/chromium-bidi-0.4.7.tgz", + "integrity": "sha512-6+mJuFXwTMU6I3vYLs6IL8A1DyQTPjCfIL971X0aMPVGRbGnNfl6i6Cl0NMbxi2bRYLGESt9T2ZIMRM5PAEcIQ==", + "dependencies": { + "mitt": "3.0.0" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/conf": { + "version": "10.2.0", + "resolved": "https://registry.npmmirror.com/conf/-/conf-10.2.0.tgz", + "integrity": "sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==", + "dependencies": { + "ajv": "^8.6.3", + "ajv-formats": "^2.1.1", + "atomically": "^1.7.0", + "debounce-fn": "^4.0.0", + "dot-prop": "^6.0.1", + "env-paths": "^2.2.1", + "json-schema-typed": "^7.0.3", + "onetime": "^5.1.2", + "pkg-up": "^3.1.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/conf/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "node_modules/conf/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/conf/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmmirror.com/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/debounce-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/debounce-fn/-/debounce-fn-4.0.0.tgz", + "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", + "dependencies": { + "mimic-fn": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "optional": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "optional": true + }, + "node_modules/devtools-protocol": { + "version": "0.0.1107588", + "resolved": "https://registry.npmmirror.com/devtools-protocol/-/devtools-protocol-0.0.1107588.tgz", + "integrity": "sha512-yIR+pG9x65Xko7bErCUSQaDLrO/P1p3JUzEk7JCU4DowPcGHkTGUGQapcfcLc4qj0UaALwZ+cr0riFgiqpixcg==" + }, + "node_modules/dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" + }, + "node_modules/electron": { + "version": "21.4.4", + "resolved": "https://registry.npmmirror.com/electron/-/electron-21.4.4.tgz", + "integrity": "sha512-N5O7y7Gtt7mDgkJLkW49ETiT8M3myZ9tNIEvGTKhpBduX4WdgMj6c3hYeYBD6XW7SvbRkWEQaTl25RNday8Xpw==", + "hasInstallScript": true, + "dependencies": { + "@electron/get": "^1.14.1", + "@types/node": "^16.11.26", + "extract-zip": "^2.0.1" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + } + }, + "node_modules/electron-store": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/electron-store/-/electron-store-8.1.0.tgz", + "integrity": "sha512-2clHg/juMjOH0GT9cQ6qtmIvK183B39ZXR0bUoPwKwYHJsEF3quqyDzMFUAu+0OP8ijmN2CbPRAelhNbWUbzwA==", + "dependencies": { + "conf": "^10.2.0", + "type-fest": "^2.17.0" + } + }, + "node_modules/electron-store/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "optional": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "optional": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "optional": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "optional": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "node_modules/get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "optional": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/got/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "optional": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "optional": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "optional": true + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" + }, + "node_modules/json-schema-typed": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz", + "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "optional": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "optional": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/mitt": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/mitt/-/mitt-3.0.0.tgz", + "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==" + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmmirror.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/onetime/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "optional": true + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/puppeteer-core": { + "version": "19.11.1", + "resolved": "https://registry.npmmirror.com/puppeteer-core/-/puppeteer-core-19.11.1.tgz", + "integrity": "sha512-qcuC2Uf0Fwdj9wNtaTZ2OvYRraXpAK+puwwVW8ofOhOgLPZyz1c68tsorfIZyCUOpyBisjr+xByu7BMbEYMepA==", + "dependencies": { + "@puppeteer/browsers": "0.5.0", + "chromium-bidi": "0.4.7", + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.1107588", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "proxy-from-env": "1.1.0", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.13.0" + }, + "engines": { + "node": ">=14.14.0" + }, + "peerDependencies": { + "typescript": ">= 4.7.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/puppeteer-in-electron": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/puppeteer-in-electron/-/puppeteer-in-electron-3.0.5.tgz", + "integrity": "sha512-GjuPRMweteeBST9aXcFagAEiaIeQYKZaWX/4QBnMqRBQ4bEXPJkFd5p8oc6ovPbe1eriVHef2D2gr/Gv+3HTpQ==", + "dependencies": { + "@types/async-retry": "^1.4.1", + "@types/node-fetch": "^2.5.4", + "@types/puppeteer-core": "^1.9.0", + "@types/uuid": "^3.4.6", + "async-retry": "^1.3.1", + "get-port": "^5.1.1", + "uuid": "^8.3.2" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-fs/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "optional": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmmirror.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmmirror.com/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + }, + "dependencies": { + "@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "requires": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + } + }, + "@puppeteer/browsers": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/@puppeteer/browsers/-/browsers-0.5.0.tgz", + "integrity": "sha512-Uw6oB7VvmPRLE4iKsjuOh8zgDabhNX67dzo8U/BB0f9527qx+4eeUs+korU98OhG5C4ubg7ufBgVi63XYwS6TQ==", + "requires": { + "debug": "4.3.4", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "yargs": "17.7.1" + }, + "dependencies": { + "yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + } + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@types/async-retry": { + "version": "1.4.5", + "resolved": "https://registry.npmmirror.com/@types/async-retry/-/async-retry-1.4.5.tgz", + "integrity": "sha512-YrdjSD+yQv7h6d5Ip+PMxh3H6ZxKyQk0Ts+PvaNRInxneG9PFVZjFg77ILAN+N6qYf7g4giSJ1l+ZjQ1zeegvA==", + "requires": { + "@types/retry": "*" + } + }, + "@types/node": { + "version": "16.18.38", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-16.18.38.tgz", + "integrity": "sha512-6sfo1qTulpVbkxECP+AVrHV9OoJqhzCsfTNp5NIG+enM4HyM3HvZCO798WShIXBN0+QtDIcutJCjsVYnQP5rIQ==" + }, + "@types/node-fetch": { + "version": "2.6.4", + "resolved": "https://registry.npmmirror.com/@types/node-fetch/-/node-fetch-2.6.4.tgz", + "integrity": "sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==", + "requires": { + "@types/node": "*", + "form-data": "^3.0.0" + }, + "dependencies": { + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "@types/puppeteer": { + "version": "1.20.10", + "resolved": "https://registry.npmmirror.com/@types/puppeteer/-/puppeteer-1.20.10.tgz", + "integrity": "sha512-3tlzJ9+z8rMvBDzHPv4Q4LCgBwDRvuoMxThkr+BqcbbNjsBkL/enFf6m+MDJke7vJT4i22ojB8yb3UpibiuBWg==", + "requires": { + "@types/node": "*" + } + }, + "@types/puppeteer-core": { + "version": "1.20.0", + "resolved": "https://registry.npmmirror.com/@types/puppeteer-core/-/puppeteer-core-1.20.0.tgz", + "integrity": "sha512-oYsusroRxCydDjKlO9sG41xFFa+PlJr0ZTvCzA97z02PXS9Q3YxyEHvHruUdPZgAxaqwoe96kh66Ni1+fKzuPw==", + "requires": { + "@types/puppeteer": "^1" + } + }, + "@types/retry": { + "version": "0.12.2", + "resolved": "https://registry.npmmirror.com/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==" + }, + "@types/uuid": { + "version": "3.4.10", + "resolved": "https://registry.npmmirror.com/@types/uuid/-/uuid-3.4.10.tgz", + "integrity": "sha512-BgeaZuElf7DEYZhWYDTc/XcLZXdVgFkVSTa13BqKvbnmUrxr3TJFKofUxCtDO9UQOdhnV+HPOESdHiHKZOJV1A==" + }, + "@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "optional": true, + "requires": { + "@types/node": "*" + } + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "requires": { + "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + } + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "async-retry": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "requires": { + "retry": "0.13.1" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "atomically": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/atomically/-/atomically-1.7.0.tgz", + "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "optional": true + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "chromium-bidi": { + "version": "0.4.7", + "resolved": "https://registry.npmmirror.com/chromium-bidi/-/chromium-bidi-0.4.7.tgz", + "integrity": "sha512-6+mJuFXwTMU6I3vYLs6IL8A1DyQTPjCfIL971X0aMPVGRbGnNfl6i6Cl0NMbxi2bRYLGESt9T2ZIMRM5PAEcIQ==", + "requires": { + "mitt": "3.0.0" + } + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "conf": { + "version": "10.2.0", + "resolved": "https://registry.npmmirror.com/conf/-/conf-10.2.0.tgz", + "integrity": "sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==", + "requires": { + "ajv": "^8.6.3", + "ajv-formats": "^2.1.1", + "atomically": "^1.7.0", + "debounce-fn": "^4.0.0", + "dot-prop": "^6.0.1", + "env-paths": "^2.2.1", + "json-schema-typed": "^7.0.3", + "onetime": "^5.1.2", + "pkg-up": "^3.1.0", + "semver": "^7.3.5" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "optional": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmmirror.com/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "requires": { + "node-fetch": "2.6.7" + } + }, + "debounce-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/debounce-fn/-/debounce-fn-4.0.0.tgz", + "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", + "requires": { + "mimic-fn": "^3.0.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, + "define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "optional": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "optional": true + }, + "devtools-protocol": { + "version": "0.0.1107588", + "resolved": "https://registry.npmmirror.com/devtools-protocol/-/devtools-protocol-0.0.1107588.tgz", + "integrity": "sha512-yIR+pG9x65Xko7bErCUSQaDLrO/P1p3JUzEk7JCU4DowPcGHkTGUGQapcfcLc4qj0UaALwZ+cr0riFgiqpixcg==" + }, + "dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" + }, + "electron": { + "version": "21.4.4", + "resolved": "https://registry.npmmirror.com/electron/-/electron-21.4.4.tgz", + "integrity": "sha512-N5O7y7Gtt7mDgkJLkW49ETiT8M3myZ9tNIEvGTKhpBduX4WdgMj6c3hYeYBD6XW7SvbRkWEQaTl25RNday8Xpw==", + "requires": { + "@electron/get": "^1.14.1", + "@types/node": "^16.11.26", + "extract-zip": "^2.0.1" + } + }, + "electron-store": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/electron-store/-/electron-store-8.1.0.tgz", + "integrity": "sha512-2clHg/juMjOH0GT9cQ6qtmIvK183B39ZXR0bUoPwKwYHJsEF3quqyDzMFUAu+0OP8ijmN2CbPRAelhNbWUbzwA==", + "requires": { + "conf": "^10.2.0", + "type-fest": "^2.17.0" + }, + "dependencies": { + "type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==" + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "optional": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" + }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "optional": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "optional": true + }, + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "requires": { + "pend": "~1.2.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "optional": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "optional": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==" + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "optional": true, + "requires": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "optional": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "optional": true, + "requires": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + } + }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "optional": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "optional": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "optional": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "optional": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "optional": true + }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "optional": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" + }, + "json-schema-typed": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz", + "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "optional": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "optional": true + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "optional": true, + "requires": { + "escape-string-regexp": "^4.0.0" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "mitt": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/mitt/-/mitt-3.0.0.tgz", + "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==" + }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmmirror.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" + }, + "npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "optional": true, + "requires": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "optional": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + } + } + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "optional": true + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "requires": { + "find-up": "^3.0.0" + } + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "optional": true + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" + }, + "puppeteer-core": { + "version": "19.11.1", + "resolved": "https://registry.npmmirror.com/puppeteer-core/-/puppeteer-core-19.11.1.tgz", + "integrity": "sha512-qcuC2Uf0Fwdj9wNtaTZ2OvYRraXpAK+puwwVW8ofOhOgLPZyz1c68tsorfIZyCUOpyBisjr+xByu7BMbEYMepA==", + "requires": { + "@puppeteer/browsers": "0.5.0", + "chromium-bidi": "0.4.7", + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.1107588", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "proxy-from-env": "1.1.0", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.13.0" + } + }, + "puppeteer-in-electron": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/puppeteer-in-electron/-/puppeteer-in-electron-3.0.5.tgz", + "integrity": "sha512-GjuPRMweteeBST9aXcFagAEiaIeQYKZaWX/4QBnMqRBQ4bEXPJkFd5p8oc6ovPbe1eriVHef2D2gr/Gv+3HTpQ==", + "requires": { + "@types/async-retry": "^1.4.1", + "@types/node-fetch": "^2.5.4", + "@types/puppeteer-core": "^1.9.0", + "@types/uuid": "^3.4.6", + "async-retry": "^1.3.1", + "get-port": "^5.1.1", + "uuid": "^8.3.2" + } + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" + }, + "roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "optional": true, + "requires": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "optional": true + }, + "serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "optional": true, + "requires": { + "type-fest": "^0.13.1" + } + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "optional": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "requires": { + "debug": "^4.1.0" + } + }, + "tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "requires": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + }, + "dependencies": { + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + } + } + }, + "tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "optional": true + }, + "type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "optional": true + }, + "unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmmirror.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "requires": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "requires": { + "prepend-http": "^2.0.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "ws": { + "version": "8.13.0", + "resolved": "https://registry.npmmirror.com/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "requires": {} + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/JN/EXT/OPENJS/sniffer/package.json b/JN/EXT/OPENJS/sniffer/package.json new file mode 100644 index 00000000..2785e2b1 --- /dev/null +++ b/JN/EXT/OPENJS/sniffer/package.json @@ -0,0 +1,24 @@ +{ + "name": "sniffer", + "version": "1.0.0", + "description": "CatVodeOpen sniffer", + "main": "index.js", + "scripts": { + "start": "electron index.js" + }, + "author": "Simon", + "license": "ISC", + "devDependencies": {}, + "build": { + "win": { + "target": "dir", + "icon": "./app_icon.ico" + } + }, + "dependencies": { + "electron": "^21.2.2", + "puppeteer-core": "^19.2.2", + "puppeteer-in-electron": "^3.0.5", + "electron-store": "^8.1.0" + } +}