diff --git a/Rewrite/AdBlock/BiliBili.adblock b/Rewrite/AdBlock/BiliBili.adblock index f23b434..da96045 100644 --- a/Rewrite/AdBlock/BiliBili.adblock +++ b/Rewrite/AdBlock/BiliBili.adblock @@ -1,6 +1,6 @@ // ==UserScript== // @ScriptName 哔哩哔哩净化[墨鱼版] -// @Author @ddgksf2013, @blackmatrix7, @app2smile, @yjqiang, @kokoryh +// @Author @ddgksf2013, @blackmatrix7, @app2smile, @yjqiang, @kokoryh, @Maasea // @ForHelp 若有屏蔽广告的需求,可公众号后台回复APP名称 // @TaiWanBilibili https://apps.apple.com/tw/app/id1517062289 // @HKBilibili https://apps.apple.com/hk/app/id1517062289 @@ -9,8 +9,8 @@ // @TgChannel https://t.me/ddgksf2021 // @Contribute https://t.me/ddgksf2013_bot // @Feedback 📮 ddgksf2013@163.com 📮 -// @UpdateTime 2023-04-27 -// @ConfigVersion V2.0.118 +// @UpdateTime 2023-05-27 +// @ConfigVersion V2.0.123 // @Attention 如果广告仍然存在,请清除缓存或卸载应用重新安装 // @Attention 如需引用请注明出处,谢谢合作! // @Function 去广告配置(自用,不定期更新) @@ -20,52 +20,79 @@ hostname = -broadcast.chat.bilibili.com, -*cdn*.biliapi.net, -*tracker*.biliapi.net, app.bilibili.com, api.live.bilibili.com, *.bilibili.com, *.bilibili.*, grpc.biliapi.net,*biliapi.net -# ~ BiliBili_哔哩哔哩_视频播放下方商品推广@ddgksf2013 -^https?:\/\/api\.bili(api|bili)\.(net|com)\/pgc\/season\/app\/related\/recommend\? url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js -# ~ BiliBili_哔哩哔哩_屏蔽直播页顶部轮播图@ddgksf2013 -^https?:\/\/api\.live\.bilibili\.com\/xlive\/app-interface\/v2\/index\/feed url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js -# ~ BiliBili_哔哩哔哩_屏蔽直播间商品广告浮窗[还有一个域名]@ddgksf2013 -^https?:\/\/api\.live\.bilibili\.com\/xlive\/e-commerce-interface\/v\d\/ecommerce-user\/get_shopping_info\? url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js + +# ======= BiliJson 播放页处理 ======= # # ~ BiliBili_哔哩哔哩_屏蔽广告浮窗@ddgksf2013 ^https?:\/\/api\.bilibili\.com\/pgc\/activity\/deliver\/material\/receive url reject-dict -# ~ BiliBili_哔哩哔哩_屏蔽IP请求@ddgksf2013 -^https?:\/\/app\.bilibili\.com\/x\/resource\/ip url reject -# ~ BiliBili_哔哩哔哩_屏蔽DefaultWord@ddgksf2013 -^https?:\/\/(app\.bilibili\.com|grpc\.biliapi\.net)\/bilibili\.app\.interface\.v1\.Search\/Default url reject -# ~ BiliBili_哔哩哔哩_屏蔽首页右上活动@ddgksf2013 -^https?:\/\/app\.bilibili\.com\/x\/resource\/top\/activity url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js -# ~ BiliBili_哔哩哔哩_观影页面去广告@ddgksf2013 -^https?:\/\/api\.(bilibili|biliapi)\.(com|net)\/pgc\/page\/cinema\/tab\? url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js -# ~ BiliBili_哔哩哔哩_应用开屏去广告@bm7 -^https://app.bilibili.com/x/v2/splash/show url reject-dict -# ~ BiliBili_哔哩哔哩_应用开屏广告预加载@yjqiang -^https:\/\/app\.bilibili\.com\/x\/v2\/splash\/list url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js -# ~ BiliBili_哔哩哔哩_1080P高码率+4K画质[番剧和影视除外]@ddgksf2013 -^https?:\/\/app\.bilibili\.com\/x\/v2\/account\/myinfo\? url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js -# ~ BiliBili_哔哩哔哩_热搜发现@ddgksf2013 -^https://app.bilibili.com/x/v2/search/square url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js -# ~ BiliBili_哔哩哔哩_Defaultword@ddgksf2013 -^https://app.bilibili.com/x/v2/search/defaultwords url reject-dict # ~ BiliBili_哔哩哔哩_Material_Ad@ddgksf2013 ^https?:\/\/api\.bilibili\.com\/x\/vip\/ads\/material\/report url reject-dict # ~ BiliBili_哔哩哔哩_小卡片广告@ddgksf2013 ^https://api.bilibili.com/pgc/season/player/cards url reject-dict +# ~ BiliBili_哔哩哔哩_视频播放下方商品推广@ddgksf2013 +^https?:\/\/api\.bili(api|bili)\.(net|com)\/pgc\/season\/app\/related\/recommend\? url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js + + +# ======= BiliJson 直播间处理 ======= # +# ~ BiliBili_哔哩哔哩_屏蔽直播间商品广告浮窗[还有一个域名]@ddgksf2013 +^https?:\/\/api\.live\.bilibili\.com\/xlive\/e-commerce-interface\/v\d\/ecommerce-user\/get_shopping_info\? url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js +# ~ BiliBili_哔哩哔哩_直播去广告@bm7 +^https?:\/\/api\.live\.bilibili\.com\/xlive\/app-room\/v1\/index\/getInfoByRoom url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js + + +# ======= BiliJson 开屏及隐私 ======= # +# ~ BiliBili_哔哩哔哩_屏蔽IP请求@ddgksf2013 +^https?:\/\/app\.bilibili\.com\/x\/resource\/ip url reject +# ~ BiliBili_哔哩哔哩_应用开屏去广告@bm7 +^https://app.bilibili.com/x/v2/splash/show url reject-dict +# ~ BiliBili_哔哩哔哩_应用开屏广告预加载@yjqiang +^https:\/\/app\.bilibili\.com\/x\/v2\/splash\/list url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js + + +# ======= BiliJson 高码率仅粉版 ======= # +# ~ BiliBili_哔哩哔哩_1080P高码率+4K画质[番剧和影视除外]@ddgksf2013 +^https?:\/\/app\.bilibili\.com\/x\/v2\/account\/myinfo\? url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js + + +# ======= BiliJson Tab页处理 ======= # +# ~ BiliBili_哔哩哔哩_屏蔽直播页顶部轮播图@ddgksf2013 +^https?:\/\/api\.live\.bilibili\.com\/xlive\/app-interface\/v2\/index\/feed url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js # ~ BiliBili_哔哩哔哩_漫画去广告@ddgksf2013 ^https?:\/\/manga\.bilibili\.com\/twirp\/comic\.v\d\.Comic\/(Flash|ListFlash|GetActivityTab) url reject-dict # ~ BiliBili_哔哩哔哩_推荐去广告@ddgksf2013 ^https?:\/\/app\.bilibili\.com\/x\/v2\/feed\/index url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js # ~ BiliBili_哔哩哔哩_追番去广告@ddgksf2013 ^https?:\/\/api\.(bilibili|biliapi)\.(com|net)\/pgc\/page\/bangumi url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js -# ~ BiliBili_哔哩哔哩_直播去广告@bm7 -^https?:\/\/api\.live\.bilibili\.com\/xlive\/app-room\/v1\/index\/getInfoByRoom url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js +# ~ BiliBili_哔哩哔哩_观影页面去广告@ddgksf2013 +^https?:\/\/api\.(bilibili|biliapi)\.(com|net)\/pgc\/page\/cinema\/tab\? url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js + + +# ======= BiliJson 外观处理 ======= # # ~ BiliBili_哔哩哔哩_标签页处理@ddgksf2013 ^https?:\/\/app\.bilibili\.com\/x\/resource\/show\/tab url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js # ~ BiliBili_哔哩哔哩_我的页面处理@ddgksf2013 ^https?:\/\/app\.bilibili\.com\/x\/v2\/account\/mine url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js +# ~ BiliBili_哔哩哔哩_屏蔽首页右上活动@ddgksf2013 +^https?:\/\/app\.bilibili\.com\/x\/resource\/top\/activity url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js +# ~ BiliBili_哔哩哔哩_热搜发现@ddgksf2013 +^https://app.bilibili.com/x/v2/search/square url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/BiliBili.min.js + + +# ======= BiliProto 处理 ======= # +# ~ BiliBili_哔哩哔哩_屏蔽DefaultWord@ddgksf2013 +^https?:\/\/(app\.bilibili\.com|grpc\.biliapi\.net)\/bilibili\.app\.interface\.v1\.Search\/Default url reject +# ~ BiliBili_哔哩哔哩_搜索去广告@BiliUniverse +^https?:\/\/(grpc\.biliapi\.net|app\.bilibili\.com)\/bilibili\.polymer\.app\.search\.v1\.Search\/SearchAll$ url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/BiliBili/BiliBili.response.min.js +# ~ BiliBili_哔哩哔哩_交互点赞投票弹幕@Maasea +;^https?:\/\/(app\.bilibili\.com|grpc\.biliapi\.net)\/bilibili\.community\.service\.dm\.v1\.DM\/DmView url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/BiliBili/BiliBili.helper.beta.min.js +# ~ BiliBili_哔哩哔哩_青少年弹窗@Maasea +;^https?:\/\/(app\.bilibili\.com|grpc\.biliapi\.net)\/bilibili\.app\.interface\.v1\.Teenagers\/ModeStatus url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/BiliBili/BiliBili.helper.beta.min.js # ~ BiliBili_哔哩哔哩_UP主推荐广告[适配ipad端]@app2smile@ddgksf2013 ^https?:\/\/(app\.bilibili\.com|grpc\.biliapi\.net)\/bilibili\.app\.view\.v1\.View\/View$ url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/Unlock/BiliBili.proto.min.js # ~ BiliBili_哔哩哔哩_动态页面去广告@app2smile@kokoryh@ddgksf2013 ^https?:\/\/(app\.bilibili\.com|grpc\.biliapi\.net)\/bilibili\.app\.dynamic\.v2\.Dynamic\/DynAll$ url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/Unlock/BiliBili.proto.min.js + + +# ======= BiliNotAdded ======= # # ~ BiliBili_哔哩哔哩_启动时开启直连模式[自行启用]@ddgksf2013 ;^https?:\/\/app\.bilibili\.com\/x\/resource\/domain url script-response-body https://github.com/ddgksf2013/Scripts/raw/master/bilibili_startup_direct.js # ~ BiliBili_哔哩哔哩_繁体CC字幕转中文简体[自行启用hostname=aisubtitle.hdslb.com,i0.hdslb.com]@ddgksf2013 diff --git a/Scripts/AdBlock/Bilibili/BiliBili.helper.beta.js b/Scripts/AdBlock/Bilibili/BiliBili.helper.beta.js new file mode 100644 index 0000000..3a3fc42 --- /dev/null +++ b/Scripts/AdBlock/Bilibili/BiliBili.helper.beta.js @@ -0,0 +1,3908 @@ +// Build: 2023/5/28 17:05:10 +(() => { + console.time = function (o) { + (this._times = this._times || {}), (this._times[o] = Date.now()); + }; + console.timeEnd = function (o) { + if (this._times && this._times[o]) { + let e = Date.now() - this._times[o]; + console.log(`${o}: ${e}ms`), delete this._times[o]; + } else console.log(`Timer with label ${o} does not exist.`); + }; + function Tn(o) { + "use strict"; + function e() {} + function t() {} + var n = String.fromCharCode, + i = {}.toString, + r = i.call(o.SharedArrayBuffer), + s = i(), + a = o.Uint8Array, + l = a || Array, + f = a ? ArrayBuffer : l, + c = + f.isView || + function (v) { + return v && "length" in v; + }, + p = i.call(f.prototype); + f = t.prototype; + var g = o.TextEncoder, + m = new (a ? Uint16Array : l)(32); + (e.prototype.decode = function (v) { + if (!c(v)) { + var L = i.call(v); + if (L !== p && L !== r && L !== s) + throw TypeError( + "Failed to execute 'decode' on 'TextDecoder': The provided value is not of type '(ArrayBuffer or ArrayBufferView)'" + ); + v = a ? new l(v) : v || []; + } + for ( + var x = (L = ""), + y = 0, + w = v.length | 0, + G = (w - 32) | 0, + F, + E, + V = 0, + j = 0, + S, + A = 0, + D = -1; + y < w; + + ) { + for ( + F = y <= G ? 32 : (w - y) | 0; + A < F; + y = (y + 1) | 0, A = (A + 1) | 0 + ) { + switch (((E = v[y] & 255), E >> 4)) { + case 15: + if (((S = v[(y = (y + 1) | 0)] & 255), S >> 6 !== 2 || 247 < E)) { + y = (y - 1) | 0; + break; + } + (V = ((E & 7) << 6) | (S & 63)), (j = 5), (E = 256); + case 14: + (S = v[(y = (y + 1) | 0)] & 255), + (V <<= 6), + (V |= ((E & 15) << 6) | (S & 63)), + (j = S >> 6 === 2 ? (j + 4) | 0 : 24), + (E = (E + 256) & 768); + case 13: + case 12: + (S = v[(y = (y + 1) | 0)] & 255), + (V <<= 6), + (V |= ((E & 31) << 6) | (S & 63)), + (j = (j + 7) | 0), + y < w && S >> 6 === 2 && V >> j && 1114112 > V + ? ((E = V), + (V = (V - 65536) | 0), + 0 <= V && + ((D = ((V >> 10) + 55296) | 0), + (E = ((V & 1023) + 56320) | 0), + 31 > A + ? ((m[A] = D), (A = (A + 1) | 0), (D = -1)) + : ((S = D), (D = E), (E = S)))) + : ((E >>= 8), (y = (y - E - 1) | 0), (E = 65533)), + (V = j = 0), + (F = y <= G ? 32 : (w - y) | 0); + default: + m[A] = E; + continue; + case 11: + case 10: + case 9: + case 8: + } + m[A] = 65533; + } + if ( + ((x += n( + m[0], + m[1], + m[2], + m[3], + m[4], + m[5], + m[6], + m[7], + m[8], + m[9], + m[10], + m[11], + m[12], + m[13], + m[14], + m[15], + m[16], + m[17], + m[18], + m[19], + m[20], + m[21], + m[22], + m[23], + m[24], + m[25], + m[26], + m[27], + m[28], + m[29], + m[30], + m[31] + )), + 32 > A && (x = x.slice(0, (A - 32) | 0)), + y < w) + ) { + if (((m[0] = D), (A = ~D >>> 31), (D = -1), x.length < L.length)) + continue; + } else D !== -1 && (x += n(D)); + (L += x), (x = ""); + } + return L; + }), + (f.encode = function (v) { + v = v === void 0 ? "" : "" + v; + var L = v.length | 0, + x = new l(((L << 1) + 8) | 0), + y, + w = 0, + G = !a; + for (y = 0; y < L; y = (y + 1) | 0, w = (w + 1) | 0) { + var F = v.charCodeAt(y) | 0; + if (127 >= F) x[w] = F; + else { + if (2047 >= F) x[w] = 192 | (F >> 6); + else { + e: { + if (55296 <= F) + if (56319 >= F) { + var E = v.charCodeAt((y = (y + 1) | 0)) | 0; + if (56320 <= E && 57343 >= E) { + if (((F = ((F << 10) + E - 56613888) | 0), 65535 < F)) { + (x[w] = 240 | (F >> 18)), + (x[(w = (w + 1) | 0)] = 128 | ((F >> 12) & 63)), + (x[(w = (w + 1) | 0)] = 128 | ((F >> 6) & 63)), + (x[(w = (w + 1) | 0)] = 128 | (F & 63)); + continue; + } + break e; + } + F = 65533; + } else 57343 >= F && (F = 65533); + !G && + y << 1 < w && + y << 1 < ((w - 7) | 0) && + ((G = !0), (E = new l(3 * L)), E.set(x), (x = E)); + } + (x[w] = 224 | (F >> 12)), + (x[(w = (w + 1) | 0)] = 128 | ((F >> 6) & 63)); + } + x[(w = (w + 1) | 0)] = 128 | (F & 63); + } + } + return a ? x.subarray(0, w) : x.slice(0, w); + }), + (o.TextDecoder = e), + (o.TextEncoder = t); + } + var b = Tn(globalThis); + var z = Uint8Array, + ee = Uint16Array, + Nn = Int32Array, + St = new z([ + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, + 5, 5, 5, 0, 0, 0, 0, + ]), + At = new z([ + 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, + 11, 11, 12, 12, 13, 13, 0, 0, + ]), + xn = new z([ + 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15, + ]), + Mt = function (o, e) { + for (var t = new ee(31), n = 0; n < 31; ++n) t[n] = e += 1 << o[n - 1]; + for (var i = new Nn(t[30]), n = 1; n < 30; ++n) + for (var r = t[n]; r < t[n + 1]; ++r) i[r] = ((r - t[n]) << 5) | n; + return { b: t, r: i }; + }, + Ct = Mt(St, 2), + zt = Ct.b, + In = Ct.r; + (zt[28] = 258), (In[258] = 28); + var Wt = Mt(At, 0), + Bn = Wt.b, + Qn = Wt.r, + Oe = new ee(32768); + for (T = 0; T < 32768; ++T) + (K = ((T & 43690) >> 1) | ((T & 21845) << 1)), + (K = ((K & 52428) >> 2) | ((K & 13107) << 2)), + (K = ((K & 61680) >> 4) | ((K & 3855) << 4)), + (Oe[T] = (((K & 65280) >> 8) | ((K & 255) << 8)) >> 1); + var K, + T, + oe = function (o, e, t) { + for (var n = o.length, i = 0, r = new ee(e); i < n; ++i) + o[i] && ++r[o[i] - 1]; + var s = new ee(e); + for (i = 1; i < e; ++i) s[i] = (s[i - 1] + r[i - 1]) << 1; + var a; + if (t) { + a = new ee(1 << e); + var l = 15 - e; + for (i = 0; i < n; ++i) + if (o[i]) + for ( + var f = (i << 4) | o[i], + c = e - o[i], + p = s[o[i] - 1]++ << c, + g = p | ((1 << c) - 1); + p <= g; + ++p + ) + a[Oe[p] >> l] = f; + } else + for (a = new ee(n), i = 0; i < n; ++i) + o[i] && (a[i] = Oe[s[o[i] - 1]++] >> (15 - o[i])); + return a; + }, + ae = new z(288); + for (T = 0; T < 144; ++T) ae[T] = 8; + var T; + for (T = 144; T < 256; ++T) ae[T] = 9; + var T; + for (T = 256; T < 280; ++T) ae[T] = 7; + var T; + for (T = 280; T < 288; ++T) ae[T] = 8; + var T, + $t = new z(32); + for (T = 0; T < 32; ++T) $t[T] = 5; + var T; + var Un = oe(ae, 9, 1); + var En = oe($t, 5, 1), + Ee = function (o) { + for (var e = o[0], t = 1; t < o.length; ++t) o[t] > e && (e = o[t]); + return e; + }, + $ = function (o, e, t) { + var n = (e / 8) | 0; + return ((o[n] | (o[n + 1] << 8)) >> (e & 7)) & t; + }, + Fe = function (o, e) { + var t = (e / 8) | 0; + return (o[t] | (o[t + 1] << 8) | (o[t + 2] << 16)) >> (e & 7); + }, + Fn = function (o) { + return ((o + 7) / 8) | 0; + }, + On = function (o, e, t) { + (e == null || e < 0) && (e = 0), + (t == null || t > o.length) && (t = o.length); + var n = new z(t - e); + return n.set(o.subarray(e, t)), n; + }; + var Rn = [ + "unexpected EOF", + "invalid block type", + "invalid length/literal", + "invalid distance", + "stream finished", + "no stream handler", + , + "no callback", + "invalid UTF-8 data", + "extra field too long", + "date not in range 1980-2099", + "filename too long", + "stream finishing", + "invalid zip data", + ], + P = function (o, e, t) { + var n = new Error(e || Rn[o]); + if ( + ((n.code = o), + Error.captureStackTrace && Error.captureStackTrace(n, P), + !t) + ) + throw n; + return n; + }, + Dn = function (o, e, t, n) { + var i = o.length, + r = n ? n.length : 0; + if (!i || (e.f && !e.l)) return t || new z(0); + var s = !t || e.i != 2, + a = e.i; + t || (t = new z(i * 3)); + var l = function (Dt) { + var Lt = t.length; + if (Dt > Lt) { + var Vt = new z(Math.max(Lt * 2, Dt)); + Vt.set(t), (t = Vt); + } + }, + f = e.f || 0, + c = e.p || 0, + p = e.b || 0, + g = e.l, + m = e.d, + v = e.m, + L = e.n, + x = i * 8; + do { + if (!g) { + f = $(o, c, 1); + var y = $(o, c + 1, 3); + if (((c += 3), y)) + if (y == 1) (g = Un), (m = En), (v = 9), (L = 5); + else if (y == 2) { + var E = $(o, c, 31) + 257, + V = $(o, c + 10, 15) + 4, + j = E + $(o, c + 5, 31) + 1; + c += 14; + for (var S = new z(j), A = new z(19), D = 0; D < V; ++D) + A[xn[D]] = $(o, c + D * 3, 7); + c += V * 3; + for ( + var Ut = Ee(A), yn = (1 << Ut) - 1, wn = oe(A, Ut, 1), D = 0; + D < j; + + ) { + var Et = wn[$(o, c, yn)]; + c += Et & 15; + var w = Et >> 4; + if (w < 16) S[D++] = w; + else { + var _ = 0, + ce = 0; + for ( + w == 16 + ? ((ce = 3 + $(o, c, 3)), (c += 2), (_ = S[D - 1])) + : w == 17 + ? ((ce = 3 + $(o, c, 7)), (c += 3)) + : w == 18 && ((ce = 11 + $(o, c, 127)), (c += 7)); + ce--; + + ) + S[D++] = _; + } + } + var Ft = S.subarray(0, E), + W = S.subarray(E); + (v = Ee(Ft)), (L = Ee(W)), (g = oe(Ft, v, 1)), (m = oe(W, L, 1)); + } else P(1); + else { + var w = Fn(c) + 4, + G = o[w - 4] | (o[w - 3] << 8), + F = w + G; + if (F > i) { + a && P(0); + break; + } + s && l(p + G), + t.set(o.subarray(w, F), p), + (e.b = p += G), + (e.p = c = F * 8), + (e.f = f); + continue; + } + if (c > x) { + a && P(0); + break; + } + } + s && l(p + 131072); + for (var vn = (1 << v) - 1, bn = (1 << L) - 1, xe = c; ; xe = c) { + var _ = g[Fe(o, c) & vn], + Q = _ >> 4; + if (((c += _ & 15), c > x)) { + a && P(0); + break; + } + if ((_ || P(2), Q < 256)) t[p++] = Q; + else if (Q == 256) { + (xe = c), (g = null); + break; + } else { + var Ot = Q - 254; + if (Q > 264) { + var D = Q - 257, + re = St[D]; + (Ot = $(o, c, (1 << re) - 1) + zt[D]), (c += re); + } + var Ie = m[Fe(o, c) & bn], + Be = Ie >> 4; + Ie || P(3), (c += Ie & 15); + var W = Bn[Be]; + if (Be > 3) { + var re = At[Be]; + (W += Fe(o, c) & ((1 << re) - 1)), (c += re); + } + if (c > x) { + a && P(0); + break; + } + s && l(p + 131072); + var Ue = p + Ot; + if (p < W) { + var Rt = r - W, + kn = Math.min(W, Ue); + for (Rt + p < 0 && P(3); p < kn; ++p) t[p] = n[Rt + p]; + } + for (; p < Ue; p += 4) + (t[p] = t[p - W]), + (t[p + 1] = t[p + 1 - W]), + (t[p + 2] = t[p + 2 - W]), + (t[p + 3] = t[p + 3 - W]); + p = Ue; + } + } + (e.l = g), + (e.p = xe), + (e.b = p), + (e.f = f), + g && ((f = 1), (e.m = v), (e.d = m), (e.n = L)); + } while (!f); + return p == t.length ? t : On(t, 0, p); + }; + var Ln = new z(0); + var Vn = function (o) { + (o[0] != 31 || o[1] != 139 || o[2] != 8) && P(6, "invalid gzip data"); + var e = o[3], + t = 10; + e & 4 && (t += (o[10] | (o[11] << 8)) + 2); + for (var n = ((e >> 3) & 1) + ((e >> 4) & 1); n > 0; n -= !o[t++]); + return t + (e & 2); + }, + Sn = function (o) { + var e = o.length; + return ( + (o[e - 4] | (o[e - 3] << 8) | (o[e - 2] << 16) | (o[e - 1] << 24)) >>> 0 + ); + }; + function Pt(o, e) { + var t = Vn(o); + return ( + t + 8 > o.length && P(6, "invalid gzip data"), + Dn( + o.subarray(t, -8), + { i: 2 }, + (e && e.out) || new z(Sn(o)), + e && e.dictionary + ) + ); + } + var An = typeof TextDecoder < "u" && new TextDecoder(), + Mn = 0; + try { + An.decode(Ln, { stream: !0 }), (Mn = 1); + } catch {} + function q(o) { + let e = typeof o; + if (e == "object") { + if (Array.isArray(o)) return "array"; + if (o === null) return "null"; + } + return e; + } + function te(o) { + return o !== null && typeof o == "object" && !Array.isArray(o); + } + var X = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split( + "" + ), + he = []; + for (let o = 0; o < X.length; o++) he[X[o].charCodeAt(0)] = o; + he["-".charCodeAt(0)] = X.indexOf("+"); + he["_".charCodeAt(0)] = X.indexOf("/"); + function jt(o) { + let e = (o.length * 3) / 4; + o[o.length - 2] == "=" ? (e -= 2) : o[o.length - 1] == "=" && (e -= 1); + let t = new Uint8Array(e), + n = 0, + i = 0, + r, + s = 0; + for (let a = 0; a < o.length; a++) { + if (((r = he[o.charCodeAt(a)]), r === void 0)) + switch (o[a]) { + case "=": + i = 0; + case ` +`: + case "\r": + case " ": + case " ": + continue; + default: + throw Error("invalid base64 string."); + } + switch (i) { + case 0: + (s = r), (i = 1); + break; + case 1: + (t[n++] = (s << 2) | ((r & 48) >> 4)), (s = r), (i = 2); + break; + case 2: + (t[n++] = ((s & 15) << 4) | ((r & 60) >> 2)), (s = r), (i = 3); + break; + case 3: + (t[n++] = ((s & 3) << 6) | r), (i = 0); + break; + } + } + if (i == 1) throw Error("invalid base64 string."); + return t.subarray(0, n); + } + function Jt(o) { + let e = "", + t = 0, + n, + i = 0; + for (let r = 0; r < o.length; r++) + switch (((n = o[r]), t)) { + case 0: + (e += X[n >> 2]), (i = (n & 3) << 4), (t = 1); + break; + case 1: + (e += X[i | (n >> 4)]), (i = (n & 15) << 2), (t = 2); + break; + case 2: + (e += X[i | (n >> 6)]), (e += X[n & 63]), (t = 0); + break; + } + return t && ((e += X[i]), (e += "="), t == 1 && (e += "=")), e; + } + var d; + (function (o) { + (o.symbol = Symbol.for("protobuf-ts/unknown")), + (o.onRead = (t, n, i, r, s) => { + (e(n) ? n[o.symbol] : (n[o.symbol] = [])).push({ + no: i, + wireType: r, + data: s, + }); + }), + (o.onWrite = (t, n, i) => { + for (let { no: r, wireType: s, data: a } of o.list(n)) + i.tag(r, s).raw(a); + }), + (o.list = (t, n) => { + if (e(t)) { + let i = t[o.symbol]; + return n ? i.filter((r) => r.no == n) : i; + } + return []; + }), + (o.last = (t, n) => o.list(t, n).slice(-1)[0]); + let e = (t) => t && Array.isArray(t[o.symbol]); + })(d || (d = {})); + var h; + (function (o) { + (o[(o.Varint = 0)] = "Varint"), + (o[(o.Bit64 = 1)] = "Bit64"), + (o[(o.LengthDelimited = 2)] = "LengthDelimited"), + (o[(o.StartGroup = 3)] = "StartGroup"), + (o[(o.EndGroup = 4)] = "EndGroup"), + (o[(o.Bit32 = 5)] = "Bit32"); + })(h || (h = {})); + function Gt() { + let o = 0, + e = 0; + for (let n = 0; n < 28; n += 7) { + let i = this.buf[this.pos++]; + if (((o |= (i & 127) << n), !(i & 128))) + return this.assertBounds(), [o, e]; + } + let t = this.buf[this.pos++]; + if (((o |= (t & 15) << 28), (e = (t & 112) >> 4), !(t & 128))) + return this.assertBounds(), [o, e]; + for (let n = 3; n <= 31; n += 7) { + let i = this.buf[this.pos++]; + if (((e |= (i & 127) << n), !(i & 128))) + return this.assertBounds(), [o, e]; + } + throw new Error("invalid varint"); + } + function me(o, e, t) { + for (let r = 0; r < 28; r = r + 7) { + let s = o >>> r, + a = !(!(s >>> 7) && e == 0), + l = (a ? s | 128 : s) & 255; + if ((t.push(l), !a)) return; + } + let n = ((o >>> 28) & 15) | ((e & 7) << 4), + i = !!(e >> 3); + if ((t.push((i ? n | 128 : n) & 255), !!i)) { + for (let r = 3; r < 31; r = r + 7) { + let s = e >>> r, + a = !!(s >>> 7), + l = (a ? s | 128 : s) & 255; + if ((t.push(l), !a)) return; + } + t.push((e >>> 31) & 1); + } + } + var pe = 65536 * 65536; + function Re(o) { + let e = o[0] == "-"; + e && (o = o.slice(1)); + let t = 1e6, + n = 0, + i = 0; + function r(s, a) { + let l = Number(o.slice(s, a)); + (i *= t), + (n = n * t + l), + n >= pe && ((i = i + ((n / pe) | 0)), (n = n % pe)); + } + return r(-24, -18), r(-18, -12), r(-12, -6), r(-6), [e, n, i]; + } + function de(o, e) { + if (e <= 2097151) return "" + (pe * e + (o >>> 0)); + let t = o & 16777215, + n = (((o >>> 24) | (e << 8)) >>> 0) & 16777215, + i = (e >> 16) & 65535, + r = t + n * 6777216 + i * 6710656, + s = n + i * 8147497, + a = i * 2, + l = 1e7; + r >= l && ((s += Math.floor(r / l)), (r %= l)), + s >= l && ((a += Math.floor(s / l)), (s %= l)); + function f(c, p) { + let g = c ? String(c) : ""; + return p ? "0000000".slice(g.length) + g : g; + } + return f(a, 0) + f(s, a) + f(r, 1); + } + function De(o, e) { + if (o >= 0) { + for (; o > 127; ) e.push((o & 127) | 128), (o = o >>> 7); + e.push(o); + } else { + for (let t = 0; t < 9; t++) e.push((o & 127) | 128), (o = o >> 7); + e.push(1); + } + } + function Kt() { + let o = this.buf[this.pos++], + e = o & 127; + if (!(o & 128)) return this.assertBounds(), e; + if (((o = this.buf[this.pos++]), (e |= (o & 127) << 7), !(o & 128))) + return this.assertBounds(), e; + if (((o = this.buf[this.pos++]), (e |= (o & 127) << 14), !(o & 128))) + return this.assertBounds(), e; + if (((o = this.buf[this.pos++]), (e |= (o & 127) << 21), !(o & 128))) + return this.assertBounds(), e; + (o = this.buf[this.pos++]), (e |= (o & 15) << 28); + for (let t = 5; o & 128 && t < 10; t++) o = this.buf[this.pos++]; + if (o & 128) throw new Error("invalid varint"); + return this.assertBounds(), e >>> 0; + } + function Cn() { + let o = new DataView(new ArrayBuffer(8)); + return globalThis.BigInt !== void 0 && + typeof o.getBigInt64 == "function" && + typeof o.getBigUint64 == "function" && + typeof o.setBigInt64 == "function" && + typeof o.setBigUint64 == "function" + ? { + MIN: BigInt("-9223372036854775808"), + MAX: BigInt("9223372036854775807"), + UMIN: BigInt("0"), + UMAX: BigInt("18446744073709551615"), + C: BigInt, + V: o, + } + : void 0; + } + var O = Cn(); + function Xt(o) { + if (!o) + throw new Error( + "BigInt unavailable, see https://github.com/timostamm/protobuf-ts/blob/v1.0.8/MANUAL.md#bigint-support" + ); + } + var Zt = /^-?[0-9]+$/, + ge = 65536 * 65536, + ye = class { + constructor(e, t) { + (this.lo = e | 0), (this.hi = t | 0); + } + isZero() { + return this.lo == 0 && this.hi == 0; + } + toNumber() { + let e = this.hi * ge + (this.lo >>> 0); + if (!Number.isSafeInteger(e)) + throw new Error("cannot convert to safe number"); + return e; + } + }, + R = class extends ye { + static from(e) { + if (O) + switch (typeof e) { + case "string": + if (e == "0") return this.ZERO; + if (e == "") throw new Error("string is no integer"); + e = O.C(e); + case "number": + if (e === 0) return this.ZERO; + e = O.C(e); + case "bigint": + if (!e) return this.ZERO; + if (e < O.UMIN) throw new Error("signed value for ulong"); + if (e > O.UMAX) throw new Error("ulong too large"); + return ( + O.V.setBigUint64(0, e, !0), + new R(O.V.getInt32(0, !0), O.V.getInt32(4, !0)) + ); + } + else + switch (typeof e) { + case "string": + if (e == "0") return this.ZERO; + if (((e = e.trim()), !Zt.test(e))) + throw new Error("string is no integer"); + let [t, n, i] = Re(e); + if (t) throw new Error("signed value"); + return new R(n, i); + case "number": + if (e == 0) return this.ZERO; + if (!Number.isSafeInteger(e)) + throw new Error("number is no integer"); + if (e < 0) throw new Error("signed value for ulong"); + return new R(e, e / ge); + } + throw new Error("unknown value " + typeof e); + } + toString() { + return O ? this.toBigInt().toString() : de(this.lo, this.hi); + } + toBigInt() { + return ( + Xt(O), + O.V.setInt32(0, this.lo, !0), + O.V.setInt32(4, this.hi, !0), + O.V.getBigUint64(0, !0) + ); + } + }; + R.ZERO = new R(0, 0); + var I = class extends ye { + static from(e) { + if (O) + switch (typeof e) { + case "string": + if (e == "0") return this.ZERO; + if (e == "") throw new Error("string is no integer"); + e = O.C(e); + case "number": + if (e === 0) return this.ZERO; + e = O.C(e); + case "bigint": + if (!e) return this.ZERO; + if (e < O.MIN) throw new Error("ulong too small"); + if (e > O.MAX) throw new Error("ulong too large"); + return ( + O.V.setBigInt64(0, e, !0), + new I(O.V.getInt32(0, !0), O.V.getInt32(4, !0)) + ); + } + else + switch (typeof e) { + case "string": + if (e == "0") return this.ZERO; + if (((e = e.trim()), !Zt.test(e))) + throw new Error("string is no integer"); + let [t, n, i] = Re(e), + r = new I(n, i); + return t ? r.negate() : r; + case "number": + if (e == 0) return this.ZERO; + if (!Number.isSafeInteger(e)) + throw new Error("number is no integer"); + return e > 0 ? new I(e, e / ge) : new I(-e, -e / ge).negate(); + } + throw new Error("unknown value " + typeof e); + } + isNegative() { + return (this.hi & 2147483648) !== 0; + } + negate() { + let e = ~this.hi, + t = this.lo; + return t ? (t = ~t + 1) : (e += 1), new I(t, e); + } + toString() { + if (O) return this.toBigInt().toString(); + if (this.isNegative()) { + let e = this.negate(); + return "-" + de(e.lo, e.hi); + } + return de(this.lo, this.hi); + } + toBigInt() { + return ( + Xt(O), + O.V.setInt32(0, this.lo, !0), + O.V.setInt32(4, this.hi, !0), + O.V.getBigInt64(0, !0) + ); + } + }; + I.ZERO = new I(0, 0); + var qt = { readUnknownField: !0, readerFactory: (o) => new Le(o) }; + function Yt(o) { + return o ? Object.assign(Object.assign({}, qt), o) : qt; + } + var Le = class { + constructor(e, t) { + (this.varint64 = Gt), + (this.uint32 = Kt), + (this.buf = e), + (this.len = e.length), + (this.pos = 0), + (this.view = new DataView(e.buffer, e.byteOffset, e.byteLength)), + (this.textDecoder = + t ?? new TextDecoder("utf-8", { fatal: !0, ignoreBOM: !0 })); + } + tag() { + let e = this.uint32(), + t = e >>> 3, + n = e & 7; + if (t <= 0 || n < 0 || n > 5) + throw new Error("illegal tag: field no " + t + " wire type " + n); + return [t, n]; + } + skip(e) { + let t = this.pos; + switch (e) { + case h.Varint: + for (; this.buf[this.pos++] & 128; ); + break; + case h.Bit64: + this.pos += 4; + case h.Bit32: + this.pos += 4; + break; + case h.LengthDelimited: + let n = this.uint32(); + this.pos += n; + break; + case h.StartGroup: + let i; + for (; (i = this.tag()[1]) !== h.EndGroup; ) this.skip(i); + break; + default: + throw new Error("cant skip wire type " + e); + } + return this.assertBounds(), this.buf.subarray(t, this.pos); + } + assertBounds() { + if (this.pos > this.len) throw new RangeError("premature EOF"); + } + int32() { + return this.uint32() | 0; + } + sint32() { + let e = this.uint32(); + return (e >>> 1) ^ -(e & 1); + } + int64() { + return new I(...this.varint64()); + } + uint64() { + return new R(...this.varint64()); + } + sint64() { + let [e, t] = this.varint64(), + n = -(e & 1); + return ( + (e = ((e >>> 1) | ((t & 1) << 31)) ^ n), + (t = (t >>> 1) ^ n), + new I(e, t) + ); + } + bool() { + let [e, t] = this.varint64(); + return e !== 0 || t !== 0; + } + fixed32() { + return this.view.getUint32((this.pos += 4) - 4, !0); + } + sfixed32() { + return this.view.getInt32((this.pos += 4) - 4, !0); + } + fixed64() { + return new R(this.sfixed32(), this.sfixed32()); + } + sfixed64() { + return new I(this.sfixed32(), this.sfixed32()); + } + float() { + return this.view.getFloat32((this.pos += 4) - 4, !0); + } + double() { + return this.view.getFloat64((this.pos += 8) - 8, !0); + } + bytes() { + let e = this.uint32(), + t = this.pos; + return (this.pos += e), this.assertBounds(), this.buf.subarray(t, t + e); + } + string() { + return this.textDecoder.decode(this.bytes()); + } + }; + function k(o, e) { + if (!o) throw new Error(e); + } + var zn = 34028234663852886e22, + Wn = -34028234663852886e22, + $n = 4294967295, + Pn = 2147483647, + jn = -2147483648; + function Z(o) { + if (typeof o != "number") throw new Error("invalid int 32: " + typeof o); + if (!Number.isInteger(o) || o > Pn || o < jn) + throw new Error("invalid int 32: " + o); + } + function Y(o) { + if (typeof o != "number") throw new Error("invalid uint 32: " + typeof o); + if (!Number.isInteger(o) || o > $n || o < 0) + throw new Error("invalid uint 32: " + o); + } + function ne(o) { + if (typeof o != "number") throw new Error("invalid float 32: " + typeof o); + if (Number.isFinite(o) && (o > zn || o < Wn)) + throw new Error("invalid float 32: " + o); + } + var Ht = { writeUnknownFields: !0, writerFactory: () => new Ve() }; + function _t(o) { + return o ? Object.assign(Object.assign({}, Ht), o) : Ht; + } + var Ve = class { + constructor(e) { + (this.stack = []), + (this.textEncoder = e ?? new TextEncoder()), + (this.chunks = []), + (this.buf = []); + } + finish() { + this.chunks.push(new Uint8Array(this.buf)); + let e = 0; + for (let i = 0; i < this.chunks.length; i++) e += this.chunks[i].length; + let t = new Uint8Array(e), + n = 0; + for (let i = 0; i < this.chunks.length; i++) + t.set(this.chunks[i], n), (n += this.chunks[i].length); + return (this.chunks = []), t; + } + fork() { + return ( + this.stack.push({ chunks: this.chunks, buf: this.buf }), + (this.chunks = []), + (this.buf = []), + this + ); + } + join() { + let e = this.finish(), + t = this.stack.pop(); + if (!t) throw new Error("invalid state, fork stack empty"); + return ( + (this.chunks = t.chunks), + (this.buf = t.buf), + this.uint32(e.byteLength), + this.raw(e) + ); + } + tag(e, t) { + return this.uint32(((e << 3) | t) >>> 0); + } + raw(e) { + return ( + this.buf.length && + (this.chunks.push(new Uint8Array(this.buf)), (this.buf = [])), + this.chunks.push(e), + this + ); + } + uint32(e) { + for (Y(e); e > 127; ) this.buf.push((e & 127) | 128), (e = e >>> 7); + return this.buf.push(e), this; + } + int32(e) { + return Z(e), De(e, this.buf), this; + } + bool(e) { + return this.buf.push(e ? 1 : 0), this; + } + bytes(e) { + return this.uint32(e.byteLength), this.raw(e); + } + string(e) { + let t = this.textEncoder.encode(e); + return this.uint32(t.byteLength), this.raw(t); + } + float(e) { + ne(e); + let t = new Uint8Array(4); + return new DataView(t.buffer).setFloat32(0, e, !0), this.raw(t); + } + double(e) { + let t = new Uint8Array(8); + return new DataView(t.buffer).setFloat64(0, e, !0), this.raw(t); + } + fixed32(e) { + Y(e); + let t = new Uint8Array(4); + return new DataView(t.buffer).setUint32(0, e, !0), this.raw(t); + } + sfixed32(e) { + Z(e); + let t = new Uint8Array(4); + return new DataView(t.buffer).setInt32(0, e, !0), this.raw(t); + } + sint32(e) { + return Z(e), (e = ((e << 1) ^ (e >> 31)) >>> 0), De(e, this.buf), this; + } + sfixed64(e) { + let t = new Uint8Array(8), + n = new DataView(t.buffer), + i = I.from(e); + return n.setInt32(0, i.lo, !0), n.setInt32(4, i.hi, !0), this.raw(t); + } + fixed64(e) { + let t = new Uint8Array(8), + n = new DataView(t.buffer), + i = R.from(e); + return n.setInt32(0, i.lo, !0), n.setInt32(4, i.hi, !0), this.raw(t); + } + int64(e) { + let t = I.from(e); + return me(t.lo, t.hi, this.buf), this; + } + sint64(e) { + let t = I.from(e), + n = t.hi >> 31, + i = (t.lo << 1) ^ n, + r = ((t.hi << 1) | (t.lo >>> 31)) ^ n; + return me(i, r, this.buf), this; + } + uint64(e) { + let t = R.from(e); + return me(t.lo, t.hi, this.buf), this; + } + }; + var Qt = { + emitDefaultValues: !1, + enumAsInteger: !1, + useProtoFieldName: !1, + prettySpaces: 0, + }, + en = { ignoreUnknownFields: !1 }; + function Se(o) { + return o ? Object.assign(Object.assign({}, en), o) : en; + } + function se(o) { + return o ? Object.assign(Object.assign({}, Qt), o) : Qt; + } + var B = Symbol.for("protobuf-ts/message-type"); + function Ae(o) { + let e = !1, + t = []; + for (let n = 0; n < o.length; n++) { + let i = o.charAt(n); + i == "_" + ? (e = !0) + : /\d/.test(i) + ? (t.push(i), (e = !0)) + : e + ? (t.push(i.toUpperCase()), (e = !1)) + : n == 0 + ? t.push(i.toLowerCase()) + : t.push(i); + } + return t.join(""); + } + var u; + (function (o) { + (o[(o.DOUBLE = 1)] = "DOUBLE"), + (o[(o.FLOAT = 2)] = "FLOAT"), + (o[(o.INT64 = 3)] = "INT64"), + (o[(o.UINT64 = 4)] = "UINT64"), + (o[(o.INT32 = 5)] = "INT32"), + (o[(o.FIXED64 = 6)] = "FIXED64"), + (o[(o.FIXED32 = 7)] = "FIXED32"), + (o[(o.BOOL = 8)] = "BOOL"), + (o[(o.STRING = 9)] = "STRING"), + (o[(o.BYTES = 12)] = "BYTES"), + (o[(o.UINT32 = 13)] = "UINT32"), + (o[(o.SFIXED32 = 15)] = "SFIXED32"), + (o[(o.SFIXED64 = 16)] = "SFIXED64"), + (o[(o.SINT32 = 17)] = "SINT32"), + (o[(o.SINT64 = 18)] = "SINT64"); + })(u || (u = {})); + var M; + (function (o) { + (o[(o.BIGINT = 0)] = "BIGINT"), + (o[(o.STRING = 1)] = "STRING"), + (o[(o.NUMBER = 2)] = "NUMBER"); + })(M || (M = {})); + var le; + (function (o) { + (o[(o.NO = 0)] = "NO"), + (o[(o.PACKED = 1)] = "PACKED"), + (o[(o.UNPACKED = 2)] = "UNPACKED"); + })(le || (le = {})); + function tn(o) { + var e, t, n, i; + return ( + (o.localName = + (e = o.localName) !== null && e !== void 0 ? e : Ae(o.name)), + (o.jsonName = (t = o.jsonName) !== null && t !== void 0 ? t : Ae(o.name)), + (o.repeat = (n = o.repeat) !== null && n !== void 0 ? n : le.NO), + (o.opt = + (i = o.opt) !== null && i !== void 0 + ? i + : o.repeat || o.oneof + ? !1 + : o.kind == "message"), + o + ); + } + function nn(o) { + if (typeof o != "object" || o === null || !o.hasOwnProperty("oneofKind")) + return !1; + switch (typeof o.oneofKind) { + case "string": + return o[o.oneofKind] === void 0 ? !1 : Object.keys(o).length == 2; + case "undefined": + return Object.keys(o).length == 1; + default: + return !1; + } + } + var we = class { + constructor(e) { + var t; + this.fields = (t = e.fields) !== null && t !== void 0 ? t : []; + } + prepare() { + if (this.data) return; + let e = [], + t = [], + n = []; + for (let i of this.fields) + if (i.oneof) + n.includes(i.oneof) || + (n.push(i.oneof), e.push(i.oneof), t.push(i.oneof)); + else + switch ((t.push(i.localName), i.kind)) { + case "scalar": + case "enum": + (!i.opt || i.repeat) && e.push(i.localName); + break; + case "message": + i.repeat && e.push(i.localName); + break; + case "map": + e.push(i.localName); + break; + } + this.data = { req: e, known: t, oneofs: Object.values(n) }; + } + is(e, t, n = !1) { + if (t < 0) return !0; + if (e == null || typeof e != "object") return !1; + this.prepare(); + let i = Object.keys(e), + r = this.data; + if ( + i.length < r.req.length || + r.req.some((s) => !i.includes(s)) || + (!n && i.some((s) => !r.known.includes(s))) + ) + return !1; + if (t < 1) return !0; + for (let s of r.oneofs) { + let a = e[s]; + if (!nn(a)) return !1; + if (a.oneofKind === void 0) continue; + let l = this.fields.find((f) => f.localName === a.oneofKind); + if (!l || !this.field(a[a.oneofKind], l, n, t)) return !1; + } + for (let s of this.fields) + if (s.oneof === void 0 && !this.field(e[s.localName], s, n, t)) + return !1; + return !0; + } + field(e, t, n, i) { + let r = t.repeat; + switch (t.kind) { + case "scalar": + return e === void 0 + ? t.opt + : r + ? this.scalars(e, t.T, i, t.L) + : this.scalar(e, t.T, t.L); + case "enum": + return e === void 0 + ? t.opt + : r + ? this.scalars(e, u.INT32, i) + : this.scalar(e, u.INT32); + case "message": + return e === void 0 + ? !0 + : r + ? this.messages(e, t.T(), n, i) + : this.message(e, t.T(), n, i); + case "map": + if (typeof e != "object" || e === null) return !1; + if (i < 2) return !0; + if (!this.mapKeys(e, t.K, i)) return !1; + switch (t.V.kind) { + case "scalar": + return this.scalars(Object.values(e), t.V.T, i, t.V.L); + case "enum": + return this.scalars(Object.values(e), u.INT32, i); + case "message": + return this.messages(Object.values(e), t.V.T(), n, i); + } + break; + } + return !0; + } + message(e, t, n, i) { + return n ? t.isAssignable(e, i) : t.is(e, i); + } + messages(e, t, n, i) { + if (!Array.isArray(e)) return !1; + if (i < 2) return !0; + if (n) { + for (let r = 0; r < e.length && r < i; r++) + if (!t.isAssignable(e[r], i - 1)) return !1; + } else + for (let r = 0; r < e.length && r < i; r++) + if (!t.is(e[r], i - 1)) return !1; + return !0; + } + scalar(e, t, n) { + let i = typeof e; + switch (t) { + case u.UINT64: + case u.FIXED64: + case u.INT64: + case u.SFIXED64: + case u.SINT64: + switch (n) { + case M.BIGINT: + return i == "bigint"; + case M.NUMBER: + return i == "number" && !isNaN(e); + default: + return i == "string"; + } + case u.BOOL: + return i == "boolean"; + case u.STRING: + return i == "string"; + case u.BYTES: + return e instanceof Uint8Array; + case u.DOUBLE: + case u.FLOAT: + return i == "number" && !isNaN(e); + default: + return i == "number" && Number.isInteger(e); + } + } + scalars(e, t, n, i) { + if (!Array.isArray(e)) return !1; + if (n < 2) return !0; + if (Array.isArray(e)) { + for (let r = 0; r < e.length && r < n; r++) + if (!this.scalar(e[r], t, i)) return !1; + } + return !0; + } + mapKeys(e, t, n) { + let i = Object.keys(e); + switch (t) { + case u.INT32: + case u.FIXED32: + case u.SFIXED32: + case u.SINT32: + case u.UINT32: + return this.scalars( + i.slice(0, n).map((r) => parseInt(r)), + t, + n + ); + case u.BOOL: + return this.scalars( + i + .slice(0, n) + .map((r) => (r == "true" ? !0 : r == "false" ? !1 : r)), + t, + n + ); + default: + return this.scalars(i, t, n, M.STRING); + } + } + }; + function C(o, e) { + switch (e) { + case M.BIGINT: + return o.toBigInt(); + case M.NUMBER: + return o.toNumber(); + default: + return o.toString(); + } + } + var ve = class { + constructor(e) { + this.info = e; + } + prepare() { + var e; + if (this.fMap === void 0) { + this.fMap = {}; + let t = (e = this.info.fields) !== null && e !== void 0 ? e : []; + for (let n of t) + (this.fMap[n.name] = n), + (this.fMap[n.jsonName] = n), + (this.fMap[n.localName] = n); + } + } + assert(e, t, n) { + if (!e) { + let i = q(n); + throw ( + ((i == "number" || i == "boolean") && (i = n.toString()), + new Error(`Cannot parse JSON ${i} for ${this.info.typeName}#${t}`)) + ); + } + } + read(e, t, n) { + this.prepare(); + let i = []; + for (let [r, s] of Object.entries(e)) { + let a = this.fMap[r]; + if (!a) { + if (!n.ignoreUnknownFields) + throw new Error( + `Found unknown field while reading ${this.info.typeName} from JSON format. JSON key: ${r}` + ); + continue; + } + let l = a.localName, + f; + if (a.oneof) { + if (i.includes(a.oneof)) + throw new Error( + `Multiple members of the oneof group "${a.oneof}" of ${this.info.typeName} are present in JSON.` + ); + i.push(a.oneof), (f = t[a.oneof] = { oneofKind: l }); + } else f = t; + if (a.kind == "map") { + if (s === null) continue; + this.assert(te(s), a.name, s); + let c = f[l]; + for (let [p, g] of Object.entries(s)) { + this.assert(g !== null, a.name + " map value", null); + let m; + switch (a.V.kind) { + case "message": + m = a.V.T().internalJsonRead(g, n); + break; + case "enum": + if ( + ((m = this.enum(a.V.T(), g, a.name, n.ignoreUnknownFields)), + m === !1) + ) + continue; + break; + case "scalar": + m = this.scalar(g, a.V.T, a.V.L, a.name); + break; + } + this.assert(m !== void 0, a.name + " map value", g); + let v = p; + a.K == u.BOOL && (v = v == "true" ? !0 : v == "false" ? !1 : v), + (v = this.scalar(v, a.K, M.STRING, a.name).toString()), + (c[v] = m); + } + } else if (a.repeat) { + if (s === null) continue; + this.assert(Array.isArray(s), a.name, s); + let c = f[l]; + for (let p of s) { + this.assert(p !== null, a.name, null); + let g; + switch (a.kind) { + case "message": + g = a.T().internalJsonRead(p, n); + break; + case "enum": + if ( + ((g = this.enum(a.T(), p, a.name, n.ignoreUnknownFields)), + g === !1) + ) + continue; + break; + case "scalar": + g = this.scalar(p, a.T, a.L, a.name); + break; + } + this.assert(g !== void 0, a.name, s), c.push(g); + } + } else + switch (a.kind) { + case "message": + if (s === null && a.T().typeName != "google.protobuf.Value") { + this.assert( + a.oneof === void 0, + a.name + " (oneof member)", + null + ); + continue; + } + f[l] = a.T().internalJsonRead(s, n, f[l]); + break; + case "enum": + let c = this.enum(a.T(), s, a.name, n.ignoreUnknownFields); + if (c === !1) continue; + f[l] = c; + break; + case "scalar": + f[l] = this.scalar(s, a.T, a.L, a.name); + break; + } + } + } + enum(e, t, n, i) { + if ( + (e[0] == "google.protobuf.NullValue" && + k( + t === null, + `Unable to parse field ${this.info.typeName}#${n}, enum ${e[0]} only accepts null.` + ), + t === null) + ) + return 0; + switch (typeof t) { + case "number": + return ( + k( + Number.isInteger(t), + `Unable to parse field ${this.info.typeName}#${n}, enum can only be integral number, got ${t}.` + ), + t + ); + case "string": + let r = t; + e[2] && + t.substring(0, e[2].length) === e[2] && + (r = t.substring(e[2].length)); + let s = e[1][r]; + return typeof s > "u" && i + ? !1 + : (k( + typeof s == "number", + `Unable to parse field ${this.info.typeName}#${n}, enum ${e[0]} has no value for "${t}".` + ), + s); + } + k( + !1, + `Unable to parse field ${ + this.info.typeName + }#${n}, cannot parse enum value from ${typeof t}".` + ); + } + scalar(e, t, n, i) { + let r; + try { + switch (t) { + case u.DOUBLE: + case u.FLOAT: + if (e === null) return 0; + if (e === "NaN") return Number.NaN; + if (e === "Infinity") return Number.POSITIVE_INFINITY; + if (e === "-Infinity") return Number.NEGATIVE_INFINITY; + if (e === "") { + r = "empty string"; + break; + } + if (typeof e == "string" && e.trim().length !== e.length) { + r = "extra whitespace"; + break; + } + if (typeof e != "string" && typeof e != "number") break; + let s = Number(e); + if (Number.isNaN(s)) { + r = "not a number"; + break; + } + if (!Number.isFinite(s)) { + r = "too large or small"; + break; + } + return t == u.FLOAT && ne(s), s; + case u.INT32: + case u.FIXED32: + case u.SFIXED32: + case u.SINT32: + case u.UINT32: + if (e === null) return 0; + let a; + if ( + (typeof e == "number" + ? (a = e) + : e === "" + ? (r = "empty string") + : typeof e == "string" && + (e.trim().length !== e.length + ? (r = "extra whitespace") + : (a = Number(e))), + a === void 0) + ) + break; + return t == u.UINT32 ? Y(a) : Z(a), a; + case u.INT64: + case u.SFIXED64: + case u.SINT64: + if (e === null) return C(I.ZERO, n); + if (typeof e != "number" && typeof e != "string") break; + return C(I.from(e), n); + case u.FIXED64: + case u.UINT64: + if (e === null) return C(R.ZERO, n); + if (typeof e != "number" && typeof e != "string") break; + return C(R.from(e), n); + case u.BOOL: + if (e === null) return !1; + if (typeof e != "boolean") break; + return e; + case u.STRING: + if (e === null) return ""; + if (typeof e != "string") { + r = "extra whitespace"; + break; + } + try { + encodeURIComponent(e); + } catch (l) { + l = "invalid UTF8"; + break; + } + return e; + case u.BYTES: + if (e === null || e === "") return new Uint8Array(0); + if (typeof e != "string") break; + return jt(e); + } + } catch (s) { + r = s.message; + } + this.assert(!1, i + (r ? " - " + r : ""), e); + } + }; + var be = class { + constructor(e) { + var t; + this.fields = (t = e.fields) !== null && t !== void 0 ? t : []; + } + write(e, t) { + let n = {}, + i = e; + for (let r of this.fields) { + if (!r.oneof) { + let f = this.field(r, i[r.localName], t); + f !== void 0 && (n[t.useProtoFieldName ? r.name : r.jsonName] = f); + continue; + } + let s = i[r.oneof]; + if (s.oneofKind !== r.localName) continue; + let a = + r.kind == "scalar" || r.kind == "enum" + ? Object.assign(Object.assign({}, t), { emitDefaultValues: !0 }) + : t, + l = this.field(r, s[r.localName], a); + k(l !== void 0), (n[t.useProtoFieldName ? r.name : r.jsonName] = l); + } + return n; + } + field(e, t, n) { + let i; + if (e.kind == "map") { + k(typeof t == "object" && t !== null); + let r = {}; + switch (e.V.kind) { + case "scalar": + for (let [l, f] of Object.entries(t)) { + let c = this.scalar(e.V.T, f, e.name, !1, !0); + k(c !== void 0), (r[l.toString()] = c); + } + break; + case "message": + let s = e.V.T(); + for (let [l, f] of Object.entries(t)) { + let c = this.message(s, f, e.name, n); + k(c !== void 0), (r[l.toString()] = c); + } + break; + case "enum": + let a = e.V.T(); + for (let [l, f] of Object.entries(t)) { + k(f === void 0 || typeof f == "number"); + let c = this.enum(a, f, e.name, !1, !0, n.enumAsInteger); + k(c !== void 0), (r[l.toString()] = c); + } + break; + } + (n.emitDefaultValues || Object.keys(r).length > 0) && (i = r); + } else if (e.repeat) { + k(Array.isArray(t)); + let r = []; + switch (e.kind) { + case "scalar": + for (let l = 0; l < t.length; l++) { + let f = this.scalar(e.T, t[l], e.name, e.opt, !0); + k(f !== void 0), r.push(f); + } + break; + case "enum": + let s = e.T(); + for (let l = 0; l < t.length; l++) { + k(t[l] === void 0 || typeof t[l] == "number"); + let f = this.enum(s, t[l], e.name, e.opt, !0, n.enumAsInteger); + k(f !== void 0), r.push(f); + } + break; + case "message": + let a = e.T(); + for (let l = 0; l < t.length; l++) { + let f = this.message(a, t[l], e.name, n); + k(f !== void 0), r.push(f); + } + break; + } + (n.emitDefaultValues || r.length > 0 || n.emitDefaultValues) && (i = r); + } else + switch (e.kind) { + case "scalar": + i = this.scalar(e.T, t, e.name, e.opt, n.emitDefaultValues); + break; + case "enum": + i = this.enum( + e.T(), + t, + e.name, + e.opt, + n.emitDefaultValues, + n.enumAsInteger + ); + break; + case "message": + i = this.message(e.T(), t, e.name, n); + break; + } + return i; + } + enum(e, t, n, i, r, s) { + if (e[0] == "google.protobuf.NullValue") return null; + if (t === void 0) { + k(i); + return; + } + if (!(t === 0 && !r && !i)) + return ( + k(typeof t == "number"), + k(Number.isInteger(t)), + s || !e[1].hasOwnProperty(t) ? t : e[2] ? e[2] + e[1][t] : e[1][t] + ); + } + message(e, t, n, i) { + return t === void 0 + ? i.emitDefaultValues + ? null + : void 0 + : e.internalJsonWrite(t, i); + } + scalar(e, t, n, i, r) { + if (t === void 0) { + k(i); + return; + } + let s = r || i; + switch (e) { + case u.INT32: + case u.SFIXED32: + case u.SINT32: + return t === 0 ? (s ? 0 : void 0) : (Z(t), t); + case u.FIXED32: + case u.UINT32: + return t === 0 ? (s ? 0 : void 0) : (Y(t), t); + case u.FLOAT: + ne(t); + case u.DOUBLE: + return t === 0 + ? s + ? 0 + : void 0 + : (k(typeof t == "number"), + Number.isNaN(t) + ? "NaN" + : t === Number.POSITIVE_INFINITY + ? "Infinity" + : t === Number.NEGATIVE_INFINITY + ? "-Infinity" + : t); + case u.STRING: + return t === "" ? (s ? "" : void 0) : (k(typeof t == "string"), t); + case u.BOOL: + return t === !1 ? (s ? !1 : void 0) : (k(typeof t == "boolean"), t); + case u.UINT64: + case u.FIXED64: + k( + typeof t == "number" || typeof t == "string" || typeof t == "bigint" + ); + let a = R.from(t); + return a.isZero() && !s ? void 0 : a.toString(); + case u.INT64: + case u.SFIXED64: + case u.SINT64: + k( + typeof t == "number" || typeof t == "string" || typeof t == "bigint" + ); + let l = I.from(t); + return l.isZero() && !s ? void 0 : l.toString(); + case u.BYTES: + return ( + k(t instanceof Uint8Array), t.byteLength ? Jt(t) : s ? "" : void 0 + ); + } + } + }; + function fe(o, e = M.STRING) { + switch (o) { + case u.BOOL: + return !1; + case u.UINT64: + case u.FIXED64: + return C(R.ZERO, e); + case u.INT64: + case u.SFIXED64: + case u.SINT64: + return C(I.ZERO, e); + case u.DOUBLE: + case u.FLOAT: + return 0; + case u.BYTES: + return new Uint8Array(0); + case u.STRING: + return ""; + default: + return 0; + } + } + var ke = class { + constructor(e) { + this.info = e; + } + prepare() { + var e; + if (!this.fieldNoToField) { + let t = (e = this.info.fields) !== null && e !== void 0 ? e : []; + this.fieldNoToField = new Map(t.map((n) => [n.no, n])); + } + } + read(e, t, n, i) { + this.prepare(); + let r = i === void 0 ? e.len : e.pos + i; + for (; e.pos < r; ) { + let [s, a] = e.tag(), + l = this.fieldNoToField.get(s); + if (!l) { + let g = n.readUnknownField; + if (g == "throw") + throw new Error( + `Unknown field ${s} (wire type ${a}) for ${this.info.typeName}` + ); + let m = e.skip(a); + g !== !1 && (g === !0 ? d.onRead : g)(this.info.typeName, t, s, a, m); + continue; + } + let f = t, + c = l.repeat, + p = l.localName; + switch ( + (l.oneof && + ((f = f[l.oneof]), + f.oneofKind !== p && (f = t[l.oneof] = { oneofKind: p })), + l.kind) + ) { + case "scalar": + case "enum": + let g = l.kind == "enum" ? u.INT32 : l.T, + m = l.kind == "scalar" ? l.L : void 0; + if (c) { + let x = f[p]; + if (a == h.LengthDelimited && g != u.STRING && g != u.BYTES) { + let y = e.uint32() + e.pos; + for (; e.pos < y; ) x.push(this.scalar(e, g, m)); + } else x.push(this.scalar(e, g, m)); + } else f[p] = this.scalar(e, g, m); + break; + case "message": + if (c) { + let x = f[p], + y = l.T().internalBinaryRead(e, e.uint32(), n); + x.push(y); + } else f[p] = l.T().internalBinaryRead(e, e.uint32(), n, f[p]); + break; + case "map": + let [v, L] = this.mapEntry(l, e, n); + f[p][v] = L; + break; + } + } + } + mapEntry(e, t, n) { + let i = t.uint32(), + r = t.pos + i, + s, + a; + for (; t.pos < r; ) { + let [l, f] = t.tag(); + switch (l) { + case 1: + e.K == u.BOOL + ? (s = t.bool().toString()) + : (s = this.scalar(t, e.K, M.STRING)); + break; + case 2: + switch (e.V.kind) { + case "scalar": + a = this.scalar(t, e.V.T, e.V.L); + break; + case "enum": + a = t.int32(); + break; + case "message": + a = e.V.T().internalBinaryRead(t, t.uint32(), n); + break; + } + break; + default: + throw new Error( + `Unknown field ${l} (wire type ${f}) in map entry for ${this.info.typeName}#${e.name}` + ); + } + } + if (s === void 0) { + let l = fe(e.K); + s = e.K == u.BOOL ? l.toString() : l; + } + if (a === void 0) + switch (e.V.kind) { + case "scalar": + a = fe(e.V.T, e.V.L); + break; + case "enum": + a = 0; + break; + case "message": + a = e.V.T().create(); + break; + } + return [s, a]; + } + scalar(e, t, n) { + switch (t) { + case u.INT32: + return e.int32(); + case u.STRING: + return e.string(); + case u.BOOL: + return e.bool(); + case u.DOUBLE: + return e.double(); + case u.FLOAT: + return e.float(); + case u.INT64: + return C(e.int64(), n); + case u.UINT64: + return C(e.uint64(), n); + case u.FIXED64: + return C(e.fixed64(), n); + case u.FIXED32: + return e.fixed32(); + case u.BYTES: + return e.bytes(); + case u.UINT32: + return e.uint32(); + case u.SFIXED32: + return e.sfixed32(); + case u.SFIXED64: + return C(e.sfixed64(), n); + case u.SINT32: + return e.sint32(); + case u.SINT64: + return C(e.sint64(), n); + } + } + }; + var Te = class { + constructor(e) { + this.info = e; + } + prepare() { + if (!this.fields) { + let e = this.info.fields ? this.info.fields.concat() : []; + this.fields = e.sort((t, n) => t.no - n.no); + } + } + write(e, t, n) { + this.prepare(); + for (let r of this.fields) { + let s, + a, + l = r.repeat, + f = r.localName; + if (r.oneof) { + let c = e[r.oneof]; + if (c.oneofKind !== f) continue; + (s = c[f]), (a = !0); + } else (s = e[f]), (a = !1); + switch (r.kind) { + case "scalar": + case "enum": + let c = r.kind == "enum" ? u.INT32 : r.T; + if (l) + if ((k(Array.isArray(s)), l == le.PACKED)) + this.packed(t, c, r.no, s); + else for (let p of s) this.scalar(t, c, r.no, p, !0); + else + s === void 0 ? k(r.opt) : this.scalar(t, c, r.no, s, a || r.opt); + break; + case "message": + if (l) { + k(Array.isArray(s)); + for (let p of s) this.message(t, n, r.T(), r.no, p); + } else this.message(t, n, r.T(), r.no, s); + break; + case "map": + k(typeof s == "object" && s !== null); + for (let [p, g] of Object.entries(s)) this.mapEntry(t, n, r, p, g); + break; + } + } + let i = n.writeUnknownFields; + i !== !1 && (i === !0 ? d.onWrite : i)(this.info.typeName, e, t); + } + mapEntry(e, t, n, i, r) { + e.tag(n.no, h.LengthDelimited), e.fork(); + let s = i; + switch (n.K) { + case u.INT32: + case u.FIXED32: + case u.UINT32: + case u.SFIXED32: + case u.SINT32: + s = Number.parseInt(i); + break; + case u.BOOL: + k(i == "true" || i == "false"), (s = i == "true"); + break; + } + switch ((this.scalar(e, n.K, 1, s, !0), n.V.kind)) { + case "scalar": + this.scalar(e, n.V.T, 2, r, !0); + break; + case "enum": + this.scalar(e, u.INT32, 2, r, !0); + break; + case "message": + this.message(e, t, n.V.T(), 2, r); + break; + } + e.join(); + } + message(e, t, n, i, r) { + r !== void 0 && + (n.internalBinaryWrite(r, e.tag(i, h.LengthDelimited).fork(), t), + e.join()); + } + scalar(e, t, n, i, r) { + let [s, a, l] = this.scalarInfo(t, i); + (!l || r) && (e.tag(n, s), e[a](i)); + } + packed(e, t, n, i) { + if (!i.length) return; + k(t !== u.BYTES && t !== u.STRING), e.tag(n, h.LengthDelimited), e.fork(); + let [, r] = this.scalarInfo(t); + for (let s = 0; s < i.length; s++) e[r](i[s]); + e.join(); + } + scalarInfo(e, t) { + let n = h.Varint, + i, + r = t === void 0, + s = t === 0; + switch (e) { + case u.INT32: + i = "int32"; + break; + case u.STRING: + (s = r || !t.length), (n = h.LengthDelimited), (i = "string"); + break; + case u.BOOL: + (s = t === !1), (i = "bool"); + break; + case u.UINT32: + i = "uint32"; + break; + case u.DOUBLE: + (n = h.Bit64), (i = "double"); + break; + case u.FLOAT: + (n = h.Bit32), (i = "float"); + break; + case u.INT64: + (s = r || I.from(t).isZero()), (i = "int64"); + break; + case u.UINT64: + (s = r || R.from(t).isZero()), (i = "uint64"); + break; + case u.FIXED64: + (s = r || R.from(t).isZero()), (n = h.Bit64), (i = "fixed64"); + break; + case u.BYTES: + (s = r || !t.byteLength), (n = h.LengthDelimited), (i = "bytes"); + break; + case u.FIXED32: + (n = h.Bit32), (i = "fixed32"); + break; + case u.SFIXED32: + (n = h.Bit32), (i = "sfixed32"); + break; + case u.SFIXED64: + (s = r || I.from(t).isZero()), (n = h.Bit64), (i = "sfixed64"); + break; + case u.SINT32: + i = "sint32"; + break; + case u.SINT64: + (s = r || I.from(t).isZero()), (i = "sint64"); + break; + } + return [n, i, r || s]; + } + }; + function rn(o) { + let e = {}; + Object.defineProperty(e, B, { enumerable: !1, value: o }); + for (let t of o.fields) { + let n = t.localName; + if (!t.opt) + if (t.oneof) e[t.oneof] = { oneofKind: void 0 }; + else if (t.repeat) e[n] = []; + else + switch (t.kind) { + case "scalar": + e[n] = fe(t.T, t.L); + break; + case "enum": + e[n] = 0; + break; + case "map": + e[n] = {}; + break; + } + } + return e; + } + function N(o, e, t) { + let n, + i = t, + r; + for (let s of o.fields) { + let a = s.localName; + if (s.oneof) { + let l = i[s.oneof]; + if (l?.oneofKind == null) continue; + if ( + ((n = l[a]), (r = e[s.oneof]), (r.oneofKind = l.oneofKind), n == null) + ) { + delete r[a]; + continue; + } + } else if (((n = i[a]), (r = e), n == null)) continue; + switch ((s.repeat && (r[a].length = n.length), s.kind)) { + case "scalar": + case "enum": + if (s.repeat) for (let f = 0; f < n.length; f++) r[a][f] = n[f]; + else r[a] = n; + break; + case "message": + let l = s.T(); + if (s.repeat) + for (let f = 0; f < n.length; f++) r[a][f] = l.create(n[f]); + else r[a] === void 0 ? (r[a] = l.create(n)) : l.mergePartial(r[a], n); + break; + case "map": + switch (s.V.kind) { + case "scalar": + case "enum": + Object.assign(r[a], n); + break; + case "message": + let f = s.V.T(); + for (let c of Object.keys(n)) r[a][c] = f.create(n[c]); + break; + } + break; + } + } + } + function sn(o, e, t) { + if (e === t) return !0; + if (!e || !t) return !1; + for (let n of o.fields) { + let i = n.localName, + r = n.oneof ? e[n.oneof][i] : e[i], + s = n.oneof ? t[n.oneof][i] : t[i]; + switch (n.kind) { + case "enum": + case "scalar": + let a = n.kind == "enum" ? u.INT32 : n.T; + if (!(n.repeat ? on(a, r, s) : ln(a, r, s))) return !1; + break; + case "map": + if ( + !(n.V.kind == "message" + ? an(n.V.T(), Ne(r), Ne(s)) + : on(n.V.kind == "enum" ? u.INT32 : n.V.T, Ne(r), Ne(s))) + ) + return !1; + break; + case "message": + let l = n.T(); + if (!(n.repeat ? an(l, r, s) : l.equals(r, s))) return !1; + break; + } + } + return !0; + } + var Ne = Object.values; + function ln(o, e, t) { + if (e === t) return !0; + if (o !== u.BYTES) return !1; + let n = e, + i = t; + if (n.length !== i.length) return !1; + for (let r = 0; r < n.length; r++) if (n[r] != i[r]) return !1; + return !0; + } + function on(o, e, t) { + if (e.length !== t.length) return !1; + for (let n = 0; n < e.length; n++) if (!ln(o, e[n], t[n])) return !1; + return !0; + } + function an(o, e, t) { + if (e.length !== t.length) return !1; + for (let n = 0; n < e.length; n++) if (!o.equals(e[n], t[n])) return !1; + return !0; + } + var U = class { + constructor(e, t, n) { + (this.defaultCheckDepth = 16), + (this.typeName = e), + (this.fields = t.map(tn)), + (this.options = n ?? {}), + (this.refTypeCheck = new we(this)), + (this.refJsonReader = new ve(this)), + (this.refJsonWriter = new be(this)), + (this.refBinReader = new ke(this)), + (this.refBinWriter = new Te(this)); + } + create(e) { + let t = rn(this); + return e !== void 0 && N(this, t, e), t; + } + clone(e) { + let t = this.create(); + return N(this, t, e), t; + } + equals(e, t) { + return sn(this, e, t); + } + is(e, t = this.defaultCheckDepth) { + return this.refTypeCheck.is(e, t, !1); + } + isAssignable(e, t = this.defaultCheckDepth) { + return this.refTypeCheck.is(e, t, !0); + } + mergePartial(e, t) { + N(this, e, t); + } + fromBinary(e, t) { + let n = Yt(t); + return this.internalBinaryRead(n.readerFactory(e), e.byteLength, n); + } + fromJson(e, t) { + return this.internalJsonRead(e, Se(t)); + } + fromJsonString(e, t) { + let n = JSON.parse(e); + return this.fromJson(n, t); + } + toJson(e, t) { + return this.internalJsonWrite(e, se(t)); + } + toJsonString(e, t) { + var n; + let i = this.toJson(e, t); + return JSON.stringify( + i, + null, + (n = t?.prettySpaces) !== null && n !== void 0 ? n : 0 + ); + } + toBinary(e, t) { + let n = _t(t); + return this.internalBinaryWrite(e, n.writerFactory(), n).finish(); + } + internalJsonRead(e, t, n) { + if (e !== null && typeof e == "object" && !Array.isArray(e)) { + let i = n ?? this.create(); + return this.refJsonReader.read(e, i, t), i; + } + throw new Error( + `Unable to parse message ${this.typeName} from JSON ${q(e)}.` + ); + } + internalJsonWrite(e, t) { + return this.refJsonWriter.write(e, t); + } + internalBinaryWrite(e, t, n) { + return this.refBinWriter.write(e, t, n), t; + } + internalBinaryRead(e, t, n, i) { + let r = i ?? this.create(); + return this.refBinReader.read(e, r, n, t), r; + } + }; + var ze = class extends U { + constructor() { + super("CommandDm", [ + { no: 1, name: "id", kind: "scalar", T: 3, L: 0 }, + { no: 2, name: "oid", kind: "scalar", T: 3, L: 0 }, + { no: 3, name: "mid", kind: "scalar", T: 3, L: 0 }, + { no: 4, name: "command", kind: "scalar", T: 9 }, + { no: 5, name: "content", kind: "scalar", T: 9 }, + { no: 6, name: "progress", kind: "scalar", T: 5 }, + { no: 7, name: "ctime", kind: "scalar", T: 9 }, + { no: 8, name: "mtime", kind: "scalar", T: 9 }, + { no: 9, name: "extra", kind: "scalar", T: 9 }, + { no: 10, name: "idStr", kind: "scalar", T: 9 }, + ]); + } + create(e) { + let t = { + id: 0n, + oid: 0n, + mid: 0n, + command: "", + content: "", + progress: 0, + ctime: "", + mtime: "", + extra: "", + idStr: "", + }; + return ( + globalThis.Object.defineProperty(t, B, { + enumerable: !1, + value: this, + }), + e !== void 0 && N(this, t, e), + t + ); + } + internalBinaryRead(e, t, n, i) { + let r = i ?? this.create(), + s = e.pos + t; + for (; e.pos < s; ) { + let [a, l] = e.tag(); + switch (a) { + case 1: + r.id = e.int64().toBigInt(); + break; + case 2: + r.oid = e.int64().toBigInt(); + break; + case 3: + r.mid = e.int64().toBigInt(); + break; + case 4: + r.command = e.string(); + break; + case 5: + r.content = e.string(); + break; + case 6: + r.progress = e.int32(); + break; + case 7: + r.ctime = e.string(); + break; + case 8: + r.mtime = e.string(); + break; + case 9: + r.extra = e.string(); + break; + case 10: + r.idStr = e.string(); + break; + default: + let f = n.readUnknownField; + if (f === "throw") + throw new globalThis.Error( + `Unknown field ${a} (wire type ${l}) for ${this.typeName}` + ); + let c = e.skip(l); + f !== !1 && (f === !0 ? d.onRead : f)(this.typeName, r, a, l, c); + } + } + return r; + } + internalBinaryWrite(e, t, n) { + e.id !== 0n && t.tag(1, h.Varint).int64(e.id), + e.oid !== 0n && t.tag(2, h.Varint).int64(e.oid), + e.mid !== 0n && t.tag(3, h.Varint).int64(e.mid), + e.command !== "" && t.tag(4, h.LengthDelimited).string(e.command), + e.content !== "" && t.tag(5, h.LengthDelimited).string(e.content), + e.progress !== 0 && t.tag(6, h.Varint).int32(e.progress), + e.ctime !== "" && t.tag(7, h.LengthDelimited).string(e.ctime), + e.mtime !== "" && t.tag(8, h.LengthDelimited).string(e.mtime), + e.extra !== "" && t.tag(9, h.LengthDelimited).string(e.extra), + e.idStr !== "" && t.tag(10, h.LengthDelimited).string(e.idStr); + let i = n.writeUnknownFields; + return i !== !1 && (i == !0 ? d.onWrite : i)(this.typeName, e, t), t; + } + }, + Me = new ze(), + We = class extends U { + constructor() { + super("DmView", [ + { + no: 1, + name: "commandDms", + kind: "message", + repeat: 1, + T: () => Me, + }, + ]); + } + create(e) { + let t = { commandDms: [] }; + return ( + globalThis.Object.defineProperty(t, B, { + enumerable: !1, + value: this, + }), + e !== void 0 && N(this, t, e), + t + ); + } + internalBinaryRead(e, t, n, i) { + let r = i ?? this.create(), + s = e.pos + t; + for (; e.pos < s; ) { + let [a, l] = e.tag(); + switch (a) { + case 1: + r.commandDms.push(Me.internalBinaryRead(e, e.uint32(), n)); + break; + default: + let f = n.readUnknownField; + if (f === "throw") + throw new globalThis.Error( + `Unknown field ${a} (wire type ${l}) for ${this.typeName}` + ); + let c = e.skip(l); + f !== !1 && (f === !0 ? d.onRead : f)(this.typeName, r, a, l, c); + } + } + return r; + } + internalBinaryWrite(e, t, n) { + for (let r = 0; r < e.commandDms.length; r++) + Me.internalBinaryWrite( + e.commandDms[r], + t.tag(1, h.LengthDelimited).fork(), + n + ).join(); + let i = n.writeUnknownFields; + return i !== !1 && (i == !0 ? d.onWrite : i)(this.typeName, e, t), t; + } + }, + Ce = new We(), + $e = class extends U { + constructor() { + super("DmViewReply", [ + { no: 22, name: "dmView", kind: "message", T: () => Ce }, + ]); + } + create(e) { + let t = {}; + return ( + globalThis.Object.defineProperty(t, B, { + enumerable: !1, + value: this, + }), + e !== void 0 && N(this, t, e), + t + ); + } + internalBinaryRead(e, t, n, i) { + let r = i ?? this.create(), + s = e.pos + t; + for (; e.pos < s; ) { + let [a, l] = e.tag(); + switch (a) { + case 22: + r.dmView = Ce.internalBinaryRead(e, e.uint32(), n, r.dmView); + break; + default: + let f = n.readUnknownField; + if (f === "throw") + throw new globalThis.Error( + `Unknown field ${a} (wire type ${l}) for ${this.typeName}` + ); + let c = e.skip(l); + f !== !1 && (f === !0 ? d.onRead : f)(this.typeName, r, a, l, c); + } + } + return r; + } + internalBinaryWrite(e, t, n) { + e.dmView && + Ce.internalBinaryWrite( + e.dmView, + t.tag(22, h.LengthDelimited).fork(), + n + ).join(); + let i = n.writeUnknownFields; + return i !== !1 && (i == !0 ? d.onWrite : i)(this.typeName, e, t), t; + } + }, + Pe = new $e(); + var fn = /^(http|https):\/\/[^/]*/; + function Jn(o) { + let e = Gn(o.length), + t = new Uint8Array(5 + o.length); + return (t[0] = 0), t.set(e, 1), t.set(o, 5), t; + } + function Gn(o) { + let e = new ArrayBuffer(4); + return new DataView(e).setUint32(0, o, !1), new Uint8Array(e); + } + var je = { + protocol: "http", + hostname: "upos-sz-mirrorali.bilivideo.com", + port: 80, + active: !1, + needWrite: !0, + }; + function Je() { + let { protocol: o, hostname: e, port: t, active: n, needWrite: i } = Kn(), + r = `${o}://${e}:${t}`; + return i && Xn(), n ? r : null; + } + function Kn() { + let o = $persistentStore.read("Bilibili-CDN"); + return o ? JSON.parse(o) : je; + } + function Xn() { + delete je.needWrite, + $persistentStore.write(JSON.stringify(je), "Bilibili-CDN"); + } + function Ge(o, e) { + for (let t of o) { + let n = t.base_url; + t.base_url = n.replace(fn, e); + } + } + function Ke(o, e) { + for (let t of o) { + let n = t.baseURL ? t : t.dashVideo; + if (n) { + let i = n.baseURL; + n.baseURL = i.replace(fn, e); + } + } + console.log(`CDN replace -> ${e}`); + } + function ie(o, e) { + let t = o.toBinary(e); + $done({ body: Jn(t) }); + } + var qe = class extends U { + constructor() { + super("ModeStatus", [ + { no: 1, name: "modes", kind: "message", repeat: 1, T: () => Xe }, + ]); + } + create(e) { + let t = { modes: [] }; + return ( + globalThis.Object.defineProperty(t, B, { + enumerable: !1, + value: this, + }), + e !== void 0 && N(this, t, e), + t + ); + } + internalBinaryRead(e, t, n, i) { + let r = i ?? this.create(), + s = e.pos + t; + for (; e.pos < s; ) { + let [a, l] = e.tag(); + switch (a) { + case 1: + r.modes.push(Xe.internalBinaryRead(e, e.uint32(), n)); + break; + default: + let f = n.readUnknownField; + if (f === "throw") + throw new globalThis.Error( + `Unknown field ${a} (wire type ${l}) for ${this.typeName}` + ); + let c = e.skip(l); + f !== !1 && (f === !0 ? d.onRead : f)(this.typeName, r, a, l, c); + } + } + return r; + } + internalBinaryWrite(e, t, n) { + for (let r = 0; r < e.modes.length; r++) + Xe.internalBinaryWrite( + e.modes[r], + t.tag(1, h.LengthDelimited).fork(), + n + ).join(); + let i = n.writeUnknownFields; + return i !== !1 && (i == !0 ? d.onWrite : i)(this.typeName, e, t), t; + } + }, + _e = new qe(), + Ye = class extends U { + constructor() { + super("Mode", [ + { no: 1, name: "id", kind: "scalar", T: 5 }, + { no: 2, name: "name", kind: "scalar", T: 9 }, + { no: 4, name: "f4", kind: "scalar", T: 5 }, + { no: 5, name: "f5", kind: "message", T: () => Ze }, + ]); + } + create(e) { + let t = { id: 0, name: "", f4: 0 }; + return ( + globalThis.Object.defineProperty(t, B, { + enumerable: !1, + value: this, + }), + e !== void 0 && N(this, t, e), + t + ); + } + internalBinaryRead(e, t, n, i) { + let r = i ?? this.create(), + s = e.pos + t; + for (; e.pos < s; ) { + let [a, l] = e.tag(); + switch (a) { + case 1: + r.id = e.int32(); + break; + case 2: + r.name = e.string(); + break; + case 4: + r.f4 = e.int32(); + break; + case 5: + r.f5 = Ze.internalBinaryRead(e, e.uint32(), n, r.f5); + break; + default: + let f = n.readUnknownField; + if (f === "throw") + throw new globalThis.Error( + `Unknown field ${a} (wire type ${l}) for ${this.typeName}` + ); + let c = e.skip(l); + f !== !1 && (f === !0 ? d.onRead : f)(this.typeName, r, a, l, c); + } + } + return r; + } + internalBinaryWrite(e, t, n) { + e.id !== 0 && t.tag(1, h.Varint).int32(e.id), + e.name !== "" && t.tag(2, h.LengthDelimited).string(e.name), + e.f4 !== 0 && t.tag(4, h.Varint).int32(e.f4), + e.f5 && + Ze.internalBinaryWrite( + e.f5, + t.tag(5, h.LengthDelimited).fork(), + n + ).join(); + let i = n.writeUnknownFields; + return i !== !1 && (i == !0 ? d.onWrite : i)(this.typeName, e, t), t; + } + }, + Xe = new Ye(), + He = class extends U { + constructor() { + super("F5", [{ no: 1, name: "f1", kind: "scalar", T: 5 }]); + } + create(e) { + let t = { f1: 0 }; + return ( + globalThis.Object.defineProperty(t, B, { + enumerable: !1, + value: this, + }), + e !== void 0 && N(this, t, e), + t + ); + } + internalBinaryRead(e, t, n, i) { + let r = i ?? this.create(), + s = e.pos + t; + for (; e.pos < s; ) { + let [a, l] = e.tag(); + switch (a) { + case 1: + r.f1 = e.int32(); + break; + default: + let f = n.readUnknownField; + if (f === "throw") + throw new globalThis.Error( + `Unknown field ${a} (wire type ${l}) for ${this.typeName}` + ); + let c = e.skip(l); + f !== !1 && (f === !0 ? d.onRead : f)(this.typeName, r, a, l, c); + } + } + return r; + } + internalBinaryWrite(e, t, n) { + e.f1 !== 0 && t.tag(1, h.Varint).int32(e.f1); + let i = n.writeUnknownFields; + return i !== !1 && (i == !0 ? d.onWrite : i)(this.typeName, e, t), t; + } + }, + Ze = new He(); + var ot; + (function (o) { + (o[(o.NoErr = 0)] = "NoErr"), + (o[(o.WithMultiDeviceLoginErr = 1)] = "WithMultiDeviceLoginErr"); + })(ot || (ot = {})); + var at = class extends U { + constructor() { + super("PlayView", [ + { no: 1, name: "playURL", kind: "message", T: () => Qe }, + ]); + } + create(e) { + let t = {}; + return ( + globalThis.Object.defineProperty(t, B, { + enumerable: !1, + value: this, + }), + e !== void 0 && N(this, t, e), + t + ); + } + internalBinaryRead(e, t, n, i) { + let r = i ?? this.create(), + s = e.pos + t; + for (; e.pos < s; ) { + let [a, l] = e.tag(); + switch (a) { + case 1: + r.playURL = Qe.internalBinaryRead(e, e.uint32(), n, r.playURL); + break; + default: + let f = n.readUnknownField; + if (f === "throw") + throw new globalThis.Error( + `Unknown field ${a} (wire type ${l}) for ${this.typeName}` + ); + let c = e.skip(l); + f !== !1 && (f === !0 ? d.onRead : f)(this.typeName, r, a, l, c); + } + } + return r; + } + internalBinaryWrite(e, t, n) { + e.playURL && + Qe.internalBinaryWrite( + e.playURL, + t.tag(1, h.LengthDelimited).fork(), + n + ).join(); + let i = n.writeUnknownFields; + return i !== !1 && (i == !0 ? d.onWrite : i)(this.typeName, e, t), t; + } + }, + pt = new at(), + st = class extends U { + constructor() { + super("PlayURLReply", [ + { no: 1, name: "quality", kind: "scalar", T: 13 }, + { no: 2, name: "format", kind: "scalar", T: 9 }, + { no: 3, name: "timelength", kind: "scalar", T: 4, L: 0 }, + { no: 4, name: "video_codecid", kind: "scalar", T: 13 }, + { no: 5, name: "videos", kind: "message", repeat: 1, T: () => tt }, + { no: 6, name: "audios", kind: "message", repeat: 1, T: () => et }, + ]); + } + create(e) { + let t = { + quality: 0, + format: "", + timelength: 0n, + videoCodecid: 0, + videos: [], + audios: [], + }; + return ( + globalThis.Object.defineProperty(t, B, { + enumerable: !1, + value: this, + }), + e !== void 0 && N(this, t, e), + t + ); + } + internalBinaryRead(e, t, n, i) { + let r = i ?? this.create(), + s = e.pos + t; + for (; e.pos < s; ) { + let [a, l] = e.tag(); + switch (a) { + case 1: + r.quality = e.uint32(); + break; + case 2: + r.format = e.string(); + break; + case 3: + r.timelength = e.uint64().toBigInt(); + break; + case 4: + r.videoCodecid = e.uint32(); + break; + case 5: + r.videos.push(tt.internalBinaryRead(e, e.uint32(), n)); + break; + case 6: + r.audios.push(et.internalBinaryRead(e, e.uint32(), n)); + break; + default: + let f = n.readUnknownField; + if (f === "throw") + throw new globalThis.Error( + `Unknown field ${a} (wire type ${l}) for ${this.typeName}` + ); + let c = e.skip(l); + f !== !1 && (f === !0 ? d.onRead : f)(this.typeName, r, a, l, c); + } + } + return r; + } + internalBinaryWrite(e, t, n) { + e.quality !== 0 && t.tag(1, h.Varint).uint32(e.quality), + e.format !== "" && t.tag(2, h.LengthDelimited).string(e.format), + e.timelength !== 0n && t.tag(3, h.Varint).uint64(e.timelength), + e.videoCodecid !== 0 && t.tag(4, h.Varint).uint32(e.videoCodecid); + for (let r = 0; r < e.videos.length; r++) + tt.internalBinaryWrite( + e.videos[r], + t.tag(5, h.LengthDelimited).fork(), + n + ).join(); + for (let r = 0; r < e.audios.length; r++) + et.internalBinaryWrite( + e.audios[r], + t.tag(6, h.LengthDelimited).fork(), + n + ).join(); + let i = n.writeUnknownFields; + return i !== !1 && (i == !0 ? d.onWrite : i)(this.typeName, e, t), t; + } + }, + Qe = new st(), + lt = class extends U { + constructor() { + super("DashItem", [ + { no: 1, name: "id", kind: "scalar", T: 13 }, + { no: 2, name: "baseURL", kind: "scalar", T: 9 }, + { no: 3, name: "backup_url", kind: "scalar", repeat: 2, T: 9 }, + { no: 4, name: "bandwidth", kind: "scalar", T: 13 }, + { no: 5, name: "codecid", kind: "scalar", T: 13 }, + { no: 6, name: "md5", kind: "scalar", T: 9 }, + { no: 7, name: "size", kind: "scalar", T: 4, L: 0 }, + { no: 8, name: "frame_rate", kind: "scalar", T: 9 }, + { no: 9, name: "widevine_pssh", kind: "scalar", T: 9 }, + ]); + } + create(e) { + let t = { + id: 0, + baseURL: "", + backupUrl: [], + bandwidth: 0, + codecid: 0, + md5: "", + size: 0n, + frameRate: "", + widevinePssh: "", + }; + return ( + globalThis.Object.defineProperty(t, B, { + enumerable: !1, + value: this, + }), + e !== void 0 && N(this, t, e), + t + ); + } + internalBinaryRead(e, t, n, i) { + let r = i ?? this.create(), + s = e.pos + t; + for (; e.pos < s; ) { + let [a, l] = e.tag(); + switch (a) { + case 1: + r.id = e.uint32(); + break; + case 2: + r.baseURL = e.string(); + break; + case 3: + r.backupUrl.push(e.string()); + break; + case 4: + r.bandwidth = e.uint32(); + break; + case 5: + r.codecid = e.uint32(); + break; + case 6: + r.md5 = e.string(); + break; + case 7: + r.size = e.uint64().toBigInt(); + break; + case 8: + r.frameRate = e.string(); + break; + case 9: + r.widevinePssh = e.string(); + break; + default: + let f = n.readUnknownField; + if (f === "throw") + throw new globalThis.Error( + `Unknown field ${a} (wire type ${l}) for ${this.typeName}` + ); + let c = e.skip(l); + f !== !1 && (f === !0 ? d.onRead : f)(this.typeName, r, a, l, c); + } + } + return r; + } + internalBinaryWrite(e, t, n) { + e.id !== 0 && t.tag(1, h.Varint).uint32(e.id), + e.baseURL !== "" && t.tag(2, h.LengthDelimited).string(e.baseURL); + for (let r = 0; r < e.backupUrl.length; r++) + t.tag(3, h.LengthDelimited).string(e.backupUrl[r]); + e.bandwidth !== 0 && t.tag(4, h.Varint).uint32(e.bandwidth), + e.codecid !== 0 && t.tag(5, h.Varint).uint32(e.codecid), + e.md5 !== "" && t.tag(6, h.LengthDelimited).string(e.md5), + e.size !== 0n && t.tag(7, h.Varint).uint64(e.size), + e.frameRate !== "" && t.tag(8, h.LengthDelimited).string(e.frameRate), + e.widevinePssh !== "" && + t.tag(9, h.LengthDelimited).string(e.widevinePssh); + let i = n.writeUnknownFields; + return i !== !1 && (i == !0 ? d.onWrite : i)(this.typeName, e, t), t; + } + }, + et = new lt(), + ft = class extends U { + constructor() { + super("Stream", [ + { no: 1, name: "stream_info", kind: "message", T: () => nt }, + { no: 2, name: "dash_video", kind: "message", T: () => it }, + ]); + } + create(e) { + let t = {}; + return ( + globalThis.Object.defineProperty(t, B, { + enumerable: !1, + value: this, + }), + e !== void 0 && N(this, t, e), + t + ); + } + internalBinaryRead(e, t, n, i) { + let r = i ?? this.create(), + s = e.pos + t; + for (; e.pos < s; ) { + let [a, l] = e.tag(); + switch (a) { + case 1: + r.streamInfo = nt.internalBinaryRead( + e, + e.uint32(), + n, + r.streamInfo + ); + break; + case 2: + r.dashVideo = it.internalBinaryRead( + e, + e.uint32(), + n, + r.dashVideo + ); + break; + default: + let f = n.readUnknownField; + if (f === "throw") + throw new globalThis.Error( + `Unknown field ${a} (wire type ${l}) for ${this.typeName}` + ); + let c = e.skip(l); + f !== !1 && (f === !0 ? d.onRead : f)(this.typeName, r, a, l, c); + } + } + return r; + } + internalBinaryWrite(e, t, n) { + e.streamInfo && + nt + .internalBinaryWrite( + e.streamInfo, + t.tag(1, h.LengthDelimited).fork(), + n + ) + .join(), + e.dashVideo && + it + .internalBinaryWrite( + e.dashVideo, + t.tag(2, h.LengthDelimited).fork(), + n + ) + .join(); + let i = n.writeUnknownFields; + return i !== !1 && (i == !0 ? d.onWrite : i)(this.typeName, e, t), t; + } + }, + tt = new ft(), + ut = class extends U { + constructor() { + super("StreamInfo", [ + { no: 1, name: "quality", kind: "scalar", T: 13 }, + { no: 2, name: "format", kind: "scalar", T: 9 }, + { no: 3, name: "description", kind: "scalar", T: 9 }, + { no: 4, name: "err_code", kind: "enum", T: () => ["PlayErr", ot] }, + { no: 5, name: "limit", kind: "message", T: () => rt }, + { no: 6, name: "need_vip", kind: "scalar", T: 8 }, + { no: 7, name: "need_login", kind: "scalar", T: 8 }, + { no: 8, name: "intact", kind: "scalar", T: 8 }, + { no: 9, name: "no_rexcode", kind: "scalar", T: 8 }, + { no: 10, name: "attribute", kind: "scalar", T: 3, L: 0 }, + { no: 11, name: "new_description", kind: "scalar", T: 9 }, + { no: 12, name: "display_desc", kind: "scalar", T: 9 }, + { no: 13, name: "superscript", kind: "scalar", T: 9 }, + ]); + } + create(e) { + let t = { + quality: 0, + format: "", + description: "", + errCode: 0, + needVip: !1, + needLogin: !1, + intact: !1, + noRexcode: !1, + attribute: 0n, + newDescription: "", + displayDesc: "", + superscript: "", + }; + return ( + globalThis.Object.defineProperty(t, B, { + enumerable: !1, + value: this, + }), + e !== void 0 && N(this, t, e), + t + ); + } + internalBinaryRead(e, t, n, i) { + let r = i ?? this.create(), + s = e.pos + t; + for (; e.pos < s; ) { + let [a, l] = e.tag(); + switch (a) { + case 1: + r.quality = e.uint32(); + break; + case 2: + r.format = e.string(); + break; + case 3: + r.description = e.string(); + break; + case 4: + r.errCode = e.int32(); + break; + case 5: + r.limit = rt.internalBinaryRead(e, e.uint32(), n, r.limit); + break; + case 6: + r.needVip = e.bool(); + break; + case 7: + r.needLogin = e.bool(); + break; + case 8: + r.intact = e.bool(); + break; + case 9: + r.noRexcode = e.bool(); + break; + case 10: + r.attribute = e.int64().toBigInt(); + break; + case 11: + r.newDescription = e.string(); + break; + case 12: + r.displayDesc = e.string(); + break; + case 13: + r.superscript = e.string(); + break; + default: + let f = n.readUnknownField; + if (f === "throw") + throw new globalThis.Error( + `Unknown field ${a} (wire type ${l}) for ${this.typeName}` + ); + let c = e.skip(l); + f !== !1 && (f === !0 ? d.onRead : f)(this.typeName, r, a, l, c); + } + } + return r; + } + internalBinaryWrite(e, t, n) { + e.quality !== 0 && t.tag(1, h.Varint).uint32(e.quality), + e.format !== "" && t.tag(2, h.LengthDelimited).string(e.format), + e.description !== "" && + t.tag(3, h.LengthDelimited).string(e.description), + e.errCode !== 0 && t.tag(4, h.Varint).int32(e.errCode), + e.limit && + rt + .internalBinaryWrite( + e.limit, + t.tag(5, h.LengthDelimited).fork(), + n + ) + .join(), + e.needVip !== !1 && t.tag(6, h.Varint).bool(e.needVip), + e.needLogin !== !1 && t.tag(7, h.Varint).bool(e.needLogin), + e.intact !== !1 && t.tag(8, h.Varint).bool(e.intact), + e.noRexcode !== !1 && t.tag(9, h.Varint).bool(e.noRexcode), + e.attribute !== 0n && t.tag(10, h.Varint).int64(e.attribute), + e.newDescription !== "" && + t.tag(11, h.LengthDelimited).string(e.newDescription), + e.displayDesc !== "" && + t.tag(12, h.LengthDelimited).string(e.displayDesc), + e.superscript !== "" && + t.tag(13, h.LengthDelimited).string(e.superscript); + let i = n.writeUnknownFields; + return i !== !1 && (i == !0 ? d.onWrite : i)(this.typeName, e, t), t; + } + }, + nt = new ut(), + ct = class extends U { + constructor() { + super("DashVideo", [ + { no: 1, name: "baseURL", kind: "scalar", T: 9 }, + { no: 2, name: "backup_url", kind: "scalar", repeat: 2, T: 9 }, + { no: 3, name: "bandwidth", kind: "scalar", T: 13 }, + { no: 4, name: "codecid", kind: "scalar", T: 13 }, + { no: 5, name: "md5", kind: "scalar", T: 9 }, + { no: 6, name: "size", kind: "scalar", T: 4, L: 0 }, + { no: 7, name: "audioId", kind: "scalar", T: 13 }, + { no: 8, name: "no_rexcode", kind: "scalar", T: 8 }, + { no: 9, name: "frame_rate", kind: "scalar", T: 9 }, + { no: 10, name: "width", kind: "scalar", T: 5 }, + { no: 11, name: "height", kind: "scalar", T: 5 }, + { no: 12, name: "widevine_pssh", kind: "scalar", T: 9 }, + ]); + } + create(e) { + let t = { + baseURL: "", + backupUrl: [], + bandwidth: 0, + codecid: 0, + md5: "", + size: 0n, + audioId: 0, + noRexcode: !1, + frameRate: "", + width: 0, + height: 0, + widevinePssh: "", + }; + return ( + globalThis.Object.defineProperty(t, B, { + enumerable: !1, + value: this, + }), + e !== void 0 && N(this, t, e), + t + ); + } + internalBinaryRead(e, t, n, i) { + let r = i ?? this.create(), + s = e.pos + t; + for (; e.pos < s; ) { + let [a, l] = e.tag(); + switch (a) { + case 1: + r.baseURL = e.string(); + break; + case 2: + r.backupUrl.push(e.string()); + break; + case 3: + r.bandwidth = e.uint32(); + break; + case 4: + r.codecid = e.uint32(); + break; + case 5: + r.md5 = e.string(); + break; + case 6: + r.size = e.uint64().toBigInt(); + break; + case 7: + r.audioId = e.uint32(); + break; + case 8: + r.noRexcode = e.bool(); + break; + case 9: + r.frameRate = e.string(); + break; + case 10: + r.width = e.int32(); + break; + case 11: + r.height = e.int32(); + break; + case 12: + r.widevinePssh = e.string(); + break; + default: + let f = n.readUnknownField; + if (f === "throw") + throw new globalThis.Error( + `Unknown field ${a} (wire type ${l}) for ${this.typeName}` + ); + let c = e.skip(l); + f !== !1 && (f === !0 ? d.onRead : f)(this.typeName, r, a, l, c); + } + } + return r; + } + internalBinaryWrite(e, t, n) { + e.baseURL !== "" && t.tag(1, h.LengthDelimited).string(e.baseURL); + for (let r = 0; r < e.backupUrl.length; r++) + t.tag(2, h.LengthDelimited).string(e.backupUrl[r]); + e.bandwidth !== 0 && t.tag(3, h.Varint).uint32(e.bandwidth), + e.codecid !== 0 && t.tag(4, h.Varint).uint32(e.codecid), + e.md5 !== "" && t.tag(5, h.LengthDelimited).string(e.md5), + e.size !== 0n && t.tag(6, h.Varint).uint64(e.size), + e.audioId !== 0 && t.tag(7, h.Varint).uint32(e.audioId), + e.noRexcode !== !1 && t.tag(8, h.Varint).bool(e.noRexcode), + e.frameRate !== "" && t.tag(9, h.LengthDelimited).string(e.frameRate), + e.width !== 0 && t.tag(10, h.Varint).int32(e.width), + e.height !== 0 && t.tag(11, h.Varint).int32(e.height), + e.widevinePssh !== "" && + t.tag(12, h.LengthDelimited).string(e.widevinePssh); + let i = n.writeUnknownFields; + return i !== !1 && (i == !0 ? d.onWrite : i)(this.typeName, e, t), t; + } + }, + it = new ct(), + ht = class extends U { + constructor() { + super("StreamLimit", [ + { no: 1, name: "title", kind: "scalar", T: 9 }, + { no: 2, name: "uri", kind: "scalar", T: 9 }, + { no: 3, name: "msg", kind: "scalar", T: 9 }, + ]); + } + create(e) { + let t = { title: "", uri: "", msg: "" }; + return ( + globalThis.Object.defineProperty(t, B, { + enumerable: !1, + value: this, + }), + e !== void 0 && N(this, t, e), + t + ); + } + internalBinaryRead(e, t, n, i) { + let r = i ?? this.create(), + s = e.pos + t; + for (; e.pos < s; ) { + let [a, l] = e.tag(); + switch (a) { + case 1: + r.title = e.string(); + break; + case 2: + r.uri = e.string(); + break; + case 3: + r.msg = e.string(); + break; + default: + let f = n.readUnknownField; + if (f === "throw") + throw new globalThis.Error( + `Unknown field ${a} (wire type ${l}) for ${this.typeName}` + ); + let c = e.skip(l); + f !== !1 && (f === !0 ? d.onRead : f)(this.typeName, r, a, l, c); + } + } + return r; + } + internalBinaryWrite(e, t, n) { + e.title !== "" && t.tag(1, h.LengthDelimited).string(e.title), + e.uri !== "" && t.tag(2, h.LengthDelimited).string(e.uri), + e.msg !== "" && t.tag(3, h.LengthDelimited).string(e.msg); + let i = n.writeUnknownFields; + return i !== !1 && (i == !0 ? d.onWrite : i)(this.typeName, e, t), t; + } + }, + rt = new ht(); + var mt = class extends U { + constructor() { + super("google.protobuf.Any", [ + { no: 1, name: "type_url", kind: "scalar", T: 9 }, + { no: 2, name: "value", kind: "scalar", T: 12 }, + ]); + } + pack(e, t) { + return { + typeUrl: this.typeNameToUrl(t.typeName), + value: t.toBinary(e), + }; + } + unpack(e, t, n) { + if (!this.contains(e, t)) + throw new Error( + "Cannot unpack google.protobuf.Any with typeUrl '" + + e.typeUrl + + "' as " + + t.typeName + + "." + ); + return t.fromBinary(e.value, n); + } + contains(e, t) { + if (!e.typeUrl.length) return !1; + let n = typeof t == "string" ? t : t.typeName, + i = this.typeUrlToName(e.typeUrl); + return n === i; + } + internalJsonWrite(e, t) { + var n; + if (e.typeUrl === "") return {}; + let i = this.typeUrlToName(e.typeUrl), + r = se(t), + s = + (n = r.typeRegistry) === null || n === void 0 + ? void 0 + : n.find((f) => f.typeName === i); + if (!s) + throw new globalThis.Error( + "Unable to convert google.protobuf.Any with typeUrl '" + + e.typeUrl + + "' to JSON. The specified type " + + i + + " is not available in the type registry." + ); + let a = s.fromBinary(e.value, { readUnknownField: !1 }), + l = s.internalJsonWrite(a, r); + return ( + (i.startsWith("google.protobuf.") || !te(l)) && (l = { value: l }), + (l["@type"] = e.typeUrl), + l + ); + } + internalJsonRead(e, t, n) { + var i; + if (!te(e)) + throw new globalThis.Error( + "Unable to parse google.protobuf.Any from JSON " + q(e) + "." + ); + if (typeof e["@type"] != "string" || e["@type"] == "") + return this.create(); + let r = this.typeUrlToName(e["@type"]), + s = + (i = t?.typeRegistry) === null || i === void 0 + ? void 0 + : i.find((l) => l.typeName == r); + if (!s) + throw new globalThis.Error( + "Unable to parse google.protobuf.Any from JSON. The specified type " + + r + + " is not available in the type registry." + ); + let a; + if (r.startsWith("google.protobuf.") && e.hasOwnProperty("value")) + a = s.fromJson(e.value, t); + else { + let l = Object.assign({}, e); + delete l["@type"], (a = s.fromJson(l, t)); + } + return ( + n === void 0 && (n = this.create()), + (n.typeUrl = e["@type"]), + (n.value = s.toBinary(a)), + n + ); + } + typeNameToUrl(e) { + if (!e.length) throw new Error("invalid type name: " + e); + return "type.googleapis.com/" + e; + } + typeUrlToName(e) { + if (!e.length) throw new Error("invalid type url: " + e); + let t = e.lastIndexOf("/"), + n = t > 0 ? e.substring(t + 1) : e; + if (!n.length) throw new Error("invalid type url: " + e); + return n; + } + create(e) { + let t = { typeUrl: "", value: new Uint8Array(0) }; + return ( + globalThis.Object.defineProperty(t, B, { + enumerable: !1, + value: this, + }), + e !== void 0 && N(this, t, e), + t + ); + } + internalBinaryRead(e, t, n, i) { + let r = i ?? this.create(), + s = e.pos + t; + for (; e.pos < s; ) { + let [a, l] = e.tag(); + switch (a) { + case 1: + r.typeUrl = e.string(); + break; + case 2: + r.value = e.bytes(); + break; + default: + let f = n.readUnknownField; + if (f === "throw") + throw new globalThis.Error( + `Unknown field ${a} (wire type ${l}) for ${this.typeName}` + ); + let c = e.skip(l); + f !== !1 && (f === !0 ? d.onRead : f)(this.typeName, r, a, l, c); + } + } + return r; + } + internalBinaryWrite(e, t, n) { + e.typeUrl !== "" && t.tag(1, h.LengthDelimited).string(e.typeUrl), + e.value.length && t.tag(2, h.LengthDelimited).bytes(e.value); + let i = n.writeUnknownFields; + return i !== !1 && (i == !0 ? d.onWrite : i)(this.typeName, e, t), t; + } + }, + H = new mt(); + var wt = class extends U { + constructor() { + super("CM", [ + { no: 1, name: "source_content", kind: "message", T: () => H }, + ]); + } + create(e) { + let t = {}; + return ( + globalThis.Object.defineProperty(t, B, { + enumerable: !1, + value: this, + }), + e !== void 0 && N(this, t, e), + t + ); + } + internalBinaryRead(e, t, n, i) { + let r = i ?? this.create(), + s = e.pos + t; + for (; e.pos < s; ) { + let [a, l] = e.tag(); + switch (a) { + case 1: + r.sourceContent = H.internalBinaryRead( + e, + e.uint32(), + n, + r.sourceContent + ); + break; + default: + let f = n.readUnknownField; + if (f === "throw") + throw new globalThis.Error( + `Unknown field ${a} (wire type ${l}) for ${this.typeName}` + ); + let c = e.skip(l); + f !== !1 && (f === !0 ? d.onRead : f)(this.typeName, r, a, l, c); + } + } + return r; + } + internalBinaryWrite(e, t, n) { + e.sourceContent && + H.internalBinaryWrite( + e.sourceContent, + t.tag(1, h.LengthDelimited).fork(), + n + ).join(); + let i = n.writeUnknownFields; + return i !== !1 && (i == !0 ? d.onWrite : i)(this.typeName, e, t), t; + } + }, + J = new wt(), + vt = class extends U { + constructor() { + super("CMConfig", [ + { no: 1, name: "ads_control", kind: "message", T: () => H }, + ]); + } + create(e) { + let t = {}; + return ( + globalThis.Object.defineProperty(t, B, { + enumerable: !1, + value: this, + }), + e !== void 0 && N(this, t, e), + t + ); + } + internalBinaryRead(e, t, n, i) { + let r = i ?? this.create(), + s = e.pos + t; + for (; e.pos < s; ) { + let [a, l] = e.tag(); + switch (a) { + case 1: + r.adsControl = H.internalBinaryRead( + e, + e.uint32(), + n, + r.adsControl + ); + break; + default: + let f = n.readUnknownField; + if (f === "throw") + throw new globalThis.Error( + `Unknown field ${a} (wire type ${l}) for ${this.typeName}` + ); + let c = e.skip(l); + f !== !1 && (f === !0 ? d.onRead : f)(this.typeName, r, a, l, c); + } + } + return r; + } + internalBinaryWrite(e, t, n) { + e.adsControl && + H.internalBinaryWrite( + e.adsControl, + t.tag(1, h.LengthDelimited).fork(), + n + ).join(); + let i = n.writeUnknownFields; + return i !== !1 && (i == !0 ? d.onWrite : i)(this.typeName, e, t), t; + } + }, + dt = new vt(), + bt = class extends U { + constructor() { + super("CmIpad", [ + { no: 1, name: "cm", kind: "message", T: () => J }, + { no: 4, name: "duration", kind: "scalar", T: 3, L: 0 }, + { no: 5, name: "aid", kind: "scalar", T: 3, L: 0 }, + ]); + } + create(e) { + let t = { duration: 0n, aid: 0n }; + return ( + globalThis.Object.defineProperty(t, B, { + enumerable: !1, + value: this, + }), + e !== void 0 && N(this, t, e), + t + ); + } + internalBinaryRead(e, t, n, i) { + let r = i ?? this.create(), + s = e.pos + t; + for (; e.pos < s; ) { + let [a, l] = e.tag(); + switch (a) { + case 1: + r.cm = J.internalBinaryRead(e, e.uint32(), n, r.cm); + break; + case 4: + r.duration = e.int64().toBigInt(); + break; + case 5: + r.aid = e.int64().toBigInt(); + break; + default: + let f = n.readUnknownField; + if (f === "throw") + throw new globalThis.Error( + `Unknown field ${a} (wire type ${l}) for ${this.typeName}` + ); + let c = e.skip(l); + f !== !1 && (f === !0 ? d.onRead : f)(this.typeName, r, a, l, c); + } + } + return r; + } + internalBinaryWrite(e, t, n) { + e.cm && + J.internalBinaryWrite( + e.cm, + t.tag(1, h.LengthDelimited).fork(), + n + ).join(), + e.duration !== 0n && t.tag(4, h.Varint).int64(e.duration), + e.aid !== 0n && t.tag(5, h.Varint).int64(e.aid); + let i = n.writeUnknownFields; + return i !== !1 && (i == !0 ? d.onWrite : i)(this.typeName, e, t), t; + } + }, + gt = new bt(), + kt = class extends U { + constructor() { + super("Relate", [{ no: 9, name: "uri", kind: "scalar", T: 9 }]); + } + create(e) { + let t = { uri: "" }; + return ( + globalThis.Object.defineProperty(t, B, { + enumerable: !1, + value: this, + }), + e !== void 0 && N(this, t, e), + t + ); + } + internalBinaryRead(e, t, n, i) { + let r = i ?? this.create(), + s = e.pos + t; + for (; e.pos < s; ) { + let [a, l] = e.tag(); + switch (a) { + case 9: + r.uri = e.string(); + break; + default: + let f = n.readUnknownField; + if (f === "throw") + throw new globalThis.Error( + `Unknown field ${a} (wire type ${l}) for ${this.typeName}` + ); + let c = e.skip(l); + f !== !1 && (f === !0 ? d.onRead : f)(this.typeName, r, a, l, c); + } + } + return r; + } + internalBinaryWrite(e, t, n) { + e.uri !== "" && t.tag(9, h.LengthDelimited).string(e.uri); + let i = n.writeUnknownFields; + return i !== !1 && (i == !0 ? d.onWrite : i)(this.typeName, e, t), t; + } + }, + yt = new kt(), + Tt = class extends U { + constructor() { + super("ViewReply", [ + { no: 10, name: "relates", kind: "message", repeat: 1, T: () => yt }, + { no: 30, name: "cms", kind: "message", repeat: 1, T: () => J }, + { no: 31, name: "cm_config", kind: "message", T: () => dt }, + { no: 41, name: "cm_ipad", kind: "message", T: () => gt }, + ]); + } + create(e) { + let t = { relates: [], cms: [] }; + return ( + globalThis.Object.defineProperty(t, B, { + enumerable: !1, + value: this, + }), + e !== void 0 && N(this, t, e), + t + ); + } + internalBinaryRead(e, t, n, i) { + let r = i ?? this.create(), + s = e.pos + t; + for (; e.pos < s; ) { + let [a, l] = e.tag(); + switch (a) { + case 10: + r.relates.push(yt.internalBinaryRead(e, e.uint32(), n)); + break; + case 30: + r.cms.push(J.internalBinaryRead(e, e.uint32(), n)); + break; + case 31: + r.cmConfig = dt.internalBinaryRead(e, e.uint32(), n, r.cmConfig); + break; + case 41: + r.cmIpad = gt.internalBinaryRead(e, e.uint32(), n, r.cmIpad); + break; + default: + let f = n.readUnknownField; + if (f === "throw") + throw new globalThis.Error( + `Unknown field ${a} (wire type ${l}) for ${this.typeName}` + ); + let c = e.skip(l); + f !== !1 && (f === !0 ? d.onRead : f)(this.typeName, r, a, l, c); + } + } + return r; + } + internalBinaryWrite(e, t, n) { + for (let r = 0; r < e.relates.length; r++) + yt.internalBinaryWrite( + e.relates[r], + t.tag(10, h.LengthDelimited).fork(), + n + ).join(); + for (let r = 0; r < e.cms.length; r++) + J.internalBinaryWrite( + e.cms[r], + t.tag(30, h.LengthDelimited).fork(), + n + ).join(); + e.cmConfig && + dt + .internalBinaryWrite( + e.cmConfig, + t.tag(31, h.LengthDelimited).fork(), + n + ) + .join(), + e.cmIpad && + gt + .internalBinaryWrite( + e.cmIpad, + t.tag(41, h.LengthDelimited).fork(), + n + ) + .join(); + let i = n.writeUnknownFields; + return i !== !1 && (i == !0 ? d.onWrite : i)(this.typeName, e, t), t; + } + }, + Nt = new Tt(); + var Zn = + /(?.+):\/\/(?[^/]+)\/?(?[^?]+)?\??(?.*)?/, + ue = class { + constructor(e = "") { + if (((this.name = "URL v1.0.2"), !e)) throw new Error("Empty URL"); + this.parse(e); + } + parse(e) { + let { + scheme: t, + host: n, + path: i = "", + params: r, + } = e.match(Zn)?.groups ?? {}; + (this.scheme = t), + (this.host = n), + (this.path = i), + (this.params = r + ? r.split("&").reduce((s, a) => { + let [l, f] = a.split("="); + return (s[l] = f), s; + }, {}) + : {}); + } + toString() { + let e = this.scheme + "://" + this.host + "/" + this.path; + return ( + this.params && + (e += + "?" + + Object.entries(this.params).reduce( + (t, [n, i], r) => t + (r ? "&" : "") + n + "=" + i, + "" + )), + e + ); + } + }; + var xt = class extends U { + constructor() { + super("MainListReply", [ + { no: 11, name: "cm", kind: "message", T: () => J }, + ]); + } + create(e) { + let t = {}; + return ( + globalThis.Object.defineProperty(t, B, { + enumerable: !1, + value: this, + }), + e !== void 0 && N(this, t, e), + t + ); + } + internalBinaryRead(e, t, n, i) { + let r = i ?? this.create(), + s = e.pos + t; + for (; e.pos < s; ) { + let [a, l] = e.tag(); + switch (a) { + case 11: + r.cm = J.internalBinaryRead(e, e.uint32(), n, r.cm); + break; + default: + let f = n.readUnknownField; + if (f === "throw") + throw new globalThis.Error( + `Unknown field ${a} (wire type ${l}) for ${this.typeName}` + ); + let c = e.skip(l); + f !== !1 && (f === !0 ? d.onRead : f)(this.typeName, r, a, l, c); + } + } + return r; + } + internalBinaryWrite(e, t, n) { + e.cm && + J.internalBinaryWrite( + e.cm, + t.tag(11, h.LengthDelimited).fork(), + n + ).join(); + let i = n.writeUnknownFields; + return i !== !1 && (i == !0 ? d.onWrite : i)(this.typeName, e, t), t; + } + }, + It = new xt(); + function un(o) { + let e = Pe.fromBinary(o); + e.dmView?.commandDms?.length && + ((e.dmView.commandDms.length = 0), ie(Pe, e)); + } + function cn(o) { + let e = _e.fromBinary(o), + t = e.modes.find((n) => n.name === "teenagers"); + t?.f5?.f1 && ((t.f5.f1 = 0), ie(_e, e)); + } + function hn(o) { + let e = Je(); + if (!e) return; + let t = pt.fromBinary(o), + n = t.playURL.videos, + i = t.playURL.audios; + Ke(n, e), Ke(i, e), ie(pt, t); + } + function pn(o) { + let e = Nt.fromBinary(o), + t = Je(); + if ((delete e.cmConfig, delete e.cmIpad, (e.cms.length = 0), t)) + for (let n of e.relates) { + let i = new ue(n.uri), + r = i.params.player_preload; + if (r) + try { + let s = decodeURIComponent(r), + a = JSON.parse(s); + Ge(a.dash.video, t), + Ge(a.dash.audio, t), + (i.params.player_preload = encodeURIComponent(JSON.stringify(a))), + (n.uri = i.toString()), + console.log(`CDN replace -> ${t}`); + } catch (s) { + console.log(`[CDN ERROR] ${s}`); + break; + } + } + ie(Nt, e); + } + function mn(o) { + let e = It.fromBinary(o); + delete e.cm, ie(It, e); + } + var qn = $request.url, + gn = $response.body, + Yn = typeof $utils?.ungzip == "function" ? $utils.ungzip : Pt, + Hn = gn.slice(0, 5), + Bt = gn.slice(5); + Hn[0] && (Bt = Yn(Bt)); + var dn = { + "v1.DM/DmView": un, + "Teenagers/ModeStatus": cn, + "v1.PlayURL/PlayView": hn, + "v1.View/View": pn, + "v1.Reply/MainList": mn, + }; + for (let o in dn) + if (qn.includes(o)) { + dn[o](Bt); + break; + } + $done({}); +})(); diff --git a/Scripts/AdBlock/Bilibili/BiliBili.helper.beta.min.js b/Scripts/AdBlock/Bilibili/BiliBili.helper.beta.min.js new file mode 100644 index 0000000..f2bb6c6 --- /dev/null +++ b/Scripts/AdBlock/Bilibili/BiliBili.helper.beta.min.js @@ -0,0 +1,3 @@ +// Build: 2023/5/28 17:05:10 +(()=>{console.time=function(o){this._times=this._times||{},this._times[o]=Date.now()};console.timeEnd=function(o){if(this._times&&this._times[o]){let e=Date.now()-this._times[o];console.log(`${o}: ${e}ms`),delete this._times[o]}else console.log(`Timer with label ${o} does not exist.`)};function Tn(o){"use strict";function e(){}function t(){}var n=String.fromCharCode,i={}.toString,r=i.call(o.SharedArrayBuffer),s=i(),a=o.Uint8Array,l=a||Array,f=a?ArrayBuffer:l,c=f.isView||function(v){return v&&"length"in v},p=i.call(f.prototype);f=t.prototype;var g=o.TextEncoder,m=new(a?Uint16Array:l)(32);e.prototype.decode=function(v){if(!c(v)){var L=i.call(v);if(L!==p&&L!==r&&L!==s)throw TypeError("Failed to execute 'decode' on 'TextDecoder': The provided value is not of type '(ArrayBuffer or ArrayBufferView)'");v=a?new l(v):v||[]}for(var x=L="",y=0,w=v.length|0,G=w-32|0,F,E,V=0,j=0,S,A=0,D=-1;y>4){case 15:if(S=v[y=y+1|0]&255,S>>6!==2||247>6===2?j+4|0:24,E=E+256&768;case 13:case 12:S=v[y=y+1|0]&255,V<<=6,V|=(E&31)<<6|S&63,j=j+7|0,y>6===2&&V>>j&&1114112>V?(E=V,V=V-65536|0,0<=V&&(D=(V>>10)+55296|0,E=(V&1023)+56320|0,31>A?(m[A]=D,A=A+1|0,D=-1):(S=D,D=E,E=S))):(E>>=8,y=y-E-1|0,E=65533),V=j=0,F=y<=G?32:w-y|0;default:m[A]=E;continue;case 11:case 10:case 9:case 8:}m[A]=65533}if(x+=n(m[0],m[1],m[2],m[3],m[4],m[5],m[6],m[7],m[8],m[9],m[10],m[11],m[12],m[13],m[14],m[15],m[16],m[17],m[18],m[19],m[20],m[21],m[22],m[23],m[24],m[25],m[26],m[27],m[28],m[29],m[30],m[31]),32>A&&(x=x.slice(0,A-32|0)),y>>31,D=-1,x.length=F)x[w]=F;else{if(2047>=F)x[w]=192|F>>6;else{e:{if(55296<=F)if(56319>=F){var E=v.charCodeAt(y=y+1|0)|0;if(56320<=E&&57343>=E){if(F=(F<<10)+E-56613888|0,65535>18,x[w=w+1|0]=128|F>>12&63,x[w=w+1|0]=128|F>>6&63,x[w=w+1|0]=128|F&63;continue}break e}F=65533}else 57343>=F&&(F=65533);!G&&y<<1>12,x[w=w+1|0]=128|F>>6&63}x[w=w+1|0]=128|F&63}}return a?x.subarray(0,w):x.slice(0,w)},o.TextDecoder=e,o.TextEncoder=t}var b=Tn(globalThis);var z=Uint8Array,ee=Uint16Array,Nn=Int32Array,St=new z([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),At=new z([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),xn=new z([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Mt=function(o,e){for(var t=new ee(31),n=0;n<31;++n)t[n]=e+=1<>1|(T&21845)<<1,K=(K&52428)>>2|(K&13107)<<2,K=(K&61680)>>4|(K&3855)<<4,Oe[T]=((K&65280)>>8|(K&255)<<8)>>1;var K,T,oe=function(o,e,t){for(var n=o.length,i=0,r=new ee(e);i>l]=f}else for(a=new ee(n),i=0;i>15-o[i]);return a},ae=new z(288);for(T=0;T<144;++T)ae[T]=8;var T;for(T=144;T<256;++T)ae[T]=9;var T;for(T=256;T<280;++T)ae[T]=7;var T;for(T=280;T<288;++T)ae[T]=8;var T,$t=new z(32);for(T=0;T<32;++T)$t[T]=5;var T;var Un=oe(ae,9,1);var En=oe($t,5,1),Ee=function(o){for(var e=o[0],t=1;te&&(e=o[t]);return e},$=function(o,e,t){var n=e/8|0;return(o[n]|o[n+1]<<8)>>(e&7)&t},Fe=function(o,e){var t=e/8|0;return(o[t]|o[t+1]<<8|o[t+2]<<16)>>(e&7)},Fn=function(o){return(o+7)/8|0},On=function(o,e,t){(e==null||e<0)&&(e=0),(t==null||t>o.length)&&(t=o.length);var n=new z(t-e);return n.set(o.subarray(e,t)),n};var Rn=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],P=function(o,e,t){var n=new Error(e||Rn[o]);if(n.code=o,Error.captureStackTrace&&Error.captureStackTrace(n,P),!t)throw n;return n},Dn=function(o,e,t,n){var i=o.length,r=n?n.length:0;if(!i||e.f&&!e.l)return t||new z(0);var s=!t||e.i!=2,a=e.i;t||(t=new z(i*3));var l=function(Dt){var Lt=t.length;if(Dt>Lt){var Vt=new z(Math.max(Lt*2,Dt));Vt.set(t),t=Vt}},f=e.f||0,c=e.p||0,p=e.b||0,g=e.l,m=e.d,v=e.m,L=e.n,x=i*8;do{if(!g){f=$(o,c,1);var y=$(o,c+1,3);if(c+=3,y)if(y==1)g=Un,m=En,v=9,L=5;else if(y==2){var E=$(o,c,31)+257,V=$(o,c+10,15)+4,j=E+$(o,c+5,31)+1;c+=14;for(var S=new z(j),A=new z(19),D=0;D>4;if(w<16)S[D++]=w;else{var _=0,ce=0;for(w==16?(ce=3+$(o,c,3),c+=2,_=S[D-1]):w==17?(ce=3+$(o,c,7),c+=3):w==18&&(ce=11+$(o,c,127),c+=7);ce--;)S[D++]=_}}var Ft=S.subarray(0,E),W=S.subarray(E);v=Ee(Ft),L=Ee(W),g=oe(Ft,v,1),m=oe(W,L,1)}else P(1);else{var w=Fn(c)+4,G=o[w-4]|o[w-3]<<8,F=w+G;if(F>i){a&&P(0);break}s&&l(p+G),t.set(o.subarray(w,F),p),e.b=p+=G,e.p=c=F*8,e.f=f;continue}if(c>x){a&&P(0);break}}s&&l(p+131072);for(var vn=(1<>4;if(c+=_&15,c>x){a&&P(0);break}if(_||P(2),Q<256)t[p++]=Q;else if(Q==256){xe=c,g=null;break}else{var Ot=Q-254;if(Q>264){var D=Q-257,re=St[D];Ot=$(o,c,(1<>4;Ie||P(3),c+=Ie&15;var W=Bn[Be];if(Be>3){var re=At[Be];W+=Fe(o,c)&(1<x){a&&P(0);break}s&&l(p+131072);var Ue=p+Ot;if(p>3&1)+(e>>4&1);n>0;n-=!o[t++]);return t+(e&2)},Sn=function(o){var e=o.length;return(o[e-4]|o[e-3]<<8|o[e-2]<<16|o[e-1]<<24)>>>0};function Pt(o,e){var t=Vn(o);return t+8>o.length&&P(6,"invalid gzip data"),Dn(o.subarray(t,-8),{i:2},e&&e.out||new z(Sn(o)),e&&e.dictionary)}var An=typeof TextDecoder<"u"&&new TextDecoder,Mn=0;try{An.decode(Ln,{stream:!0}),Mn=1}catch{}function q(o){let e=typeof o;if(e=="object"){if(Array.isArray(o))return"array";if(o===null)return"null"}return e}function te(o){return o!==null&&typeof o=="object"&&!Array.isArray(o)}var X="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),he=[];for(let o=0;o>4,s=r,i=2;break;case 2:t[n++]=(s&15)<<4|(r&60)>>2,s=r,i=3;break;case 3:t[n++]=(s&3)<<6|r,i=0;break}}if(i==1)throw Error("invalid base64 string.");return t.subarray(0,n)}function Jt(o){let e="",t=0,n,i=0;for(let r=0;r>2],i=(n&3)<<4,t=1;break;case 1:e+=X[i|n>>4],i=(n&15)<<2,t=2;break;case 2:e+=X[i|n>>6],e+=X[n&63],t=0;break}return t&&(e+=X[i],e+="=",t==1&&(e+="=")),e}var d;(function(o){o.symbol=Symbol.for("protobuf-ts/unknown"),o.onRead=(t,n,i,r,s)=>{(e(n)?n[o.symbol]:n[o.symbol]=[]).push({no:i,wireType:r,data:s})},o.onWrite=(t,n,i)=>{for(let{no:r,wireType:s,data:a}of o.list(n))i.tag(r,s).raw(a)},o.list=(t,n)=>{if(e(t)){let i=t[o.symbol];return n?i.filter(r=>r.no==n):i}return[]},o.last=(t,n)=>o.list(t,n).slice(-1)[0];let e=t=>t&&Array.isArray(t[o.symbol])})(d||(d={}));var h;(function(o){o[o.Varint=0]="Varint",o[o.Bit64=1]="Bit64",o[o.LengthDelimited=2]="LengthDelimited",o[o.StartGroup=3]="StartGroup",o[o.EndGroup=4]="EndGroup",o[o.Bit32=5]="Bit32"})(h||(h={}));function Gt(){let o=0,e=0;for(let n=0;n<28;n+=7){let i=this.buf[this.pos++];if(o|=(i&127)<>4,!(t&128))return this.assertBounds(),[o,e];for(let n=3;n<=31;n+=7){let i=this.buf[this.pos++];if(e|=(i&127)<>>r,a=!(!(s>>>7)&&e==0),l=(a?s|128:s)&255;if(t.push(l),!a)return}let n=o>>>28&15|(e&7)<<4,i=!!(e>>3);if(t.push((i?n|128:n)&255),!!i){for(let r=3;r<31;r=r+7){let s=e>>>r,a=!!(s>>>7),l=(a?s|128:s)&255;if(t.push(l),!a)return}t.push(e>>>31&1)}}var pe=65536*65536;function Re(o){let e=o[0]=="-";e&&(o=o.slice(1));let t=1e6,n=0,i=0;function r(s,a){let l=Number(o.slice(s,a));i*=t,n=n*t+l,n>=pe&&(i=i+(n/pe|0),n=n%pe)}return r(-24,-18),r(-18,-12),r(-12,-6),r(-6),[e,n,i]}function de(o,e){if(e<=2097151)return""+(pe*e+(o>>>0));let t=o&16777215,n=(o>>>24|e<<8)>>>0&16777215,i=e>>16&65535,r=t+n*6777216+i*6710656,s=n+i*8147497,a=i*2,l=1e7;r>=l&&(s+=Math.floor(r/l),r%=l),s>=l&&(a+=Math.floor(s/l),s%=l);function f(c,p){let g=c?String(c):"";return p?"0000000".slice(g.length)+g:g}return f(a,0)+f(s,a)+f(r,1)}function De(o,e){if(o>=0){for(;o>127;)e.push(o&127|128),o=o>>>7;e.push(o)}else{for(let t=0;t<9;t++)e.push(o&127|128),o=o>>7;e.push(1)}}function Kt(){let o=this.buf[this.pos++],e=o&127;if(!(o&128))return this.assertBounds(),e;if(o=this.buf[this.pos++],e|=(o&127)<<7,!(o&128))return this.assertBounds(),e;if(o=this.buf[this.pos++],e|=(o&127)<<14,!(o&128))return this.assertBounds(),e;if(o=this.buf[this.pos++],e|=(o&127)<<21,!(o&128))return this.assertBounds(),e;o=this.buf[this.pos++],e|=(o&15)<<28;for(let t=5;o&128&&t<10;t++)o=this.buf[this.pos++];if(o&128)throw new Error("invalid varint");return this.assertBounds(),e>>>0}function Cn(){let o=new DataView(new ArrayBuffer(8));return globalThis.BigInt!==void 0&&typeof o.getBigInt64=="function"&&typeof o.getBigUint64=="function"&&typeof o.setBigInt64=="function"&&typeof o.setBigUint64=="function"?{MIN:BigInt("-9223372036854775808"),MAX:BigInt("9223372036854775807"),UMIN:BigInt("0"),UMAX:BigInt("18446744073709551615"),C:BigInt,V:o}:void 0}var O=Cn();function Xt(o){if(!o)throw new Error("BigInt unavailable, see https://github.com/timostamm/protobuf-ts/blob/v1.0.8/MANUAL.md#bigint-support")}var Zt=/^-?[0-9]+$/,ge=65536*65536,ye=class{constructor(e,t){this.lo=e|0,this.hi=t|0}isZero(){return this.lo==0&&this.hi==0}toNumber(){let e=this.hi*ge+(this.lo>>>0);if(!Number.isSafeInteger(e))throw new Error("cannot convert to safe number");return e}},R=class extends ye{static from(e){if(O)switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=="")throw new Error("string is no integer");e=O.C(e);case"number":if(e===0)return this.ZERO;e=O.C(e);case"bigint":if(!e)return this.ZERO;if(eO.UMAX)throw new Error("ulong too large");return O.V.setBigUint64(0,e,!0),new R(O.V.getInt32(0,!0),O.V.getInt32(4,!0))}else switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=e.trim(),!Zt.test(e))throw new Error("string is no integer");let[t,n,i]=Re(e);if(t)throw new Error("signed value");return new R(n,i);case"number":if(e==0)return this.ZERO;if(!Number.isSafeInteger(e))throw new Error("number is no integer");if(e<0)throw new Error("signed value for ulong");return new R(e,e/ge)}throw new Error("unknown value "+typeof e)}toString(){return O?this.toBigInt().toString():de(this.lo,this.hi)}toBigInt(){return Xt(O),O.V.setInt32(0,this.lo,!0),O.V.setInt32(4,this.hi,!0),O.V.getBigUint64(0,!0)}};R.ZERO=new R(0,0);var I=class extends ye{static from(e){if(O)switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=="")throw new Error("string is no integer");e=O.C(e);case"number":if(e===0)return this.ZERO;e=O.C(e);case"bigint":if(!e)return this.ZERO;if(eO.MAX)throw new Error("ulong too large");return O.V.setBigInt64(0,e,!0),new I(O.V.getInt32(0,!0),O.V.getInt32(4,!0))}else switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=e.trim(),!Zt.test(e))throw new Error("string is no integer");let[t,n,i]=Re(e),r=new I(n,i);return t?r.negate():r;case"number":if(e==0)return this.ZERO;if(!Number.isSafeInteger(e))throw new Error("number is no integer");return e>0?new I(e,e/ge):new I(-e,-e/ge).negate()}throw new Error("unknown value "+typeof e)}isNegative(){return(this.hi&2147483648)!==0}negate(){let e=~this.hi,t=this.lo;return t?t=~t+1:e+=1,new I(t,e)}toString(){if(O)return this.toBigInt().toString();if(this.isNegative()){let e=this.negate();return"-"+de(e.lo,e.hi)}return de(this.lo,this.hi)}toBigInt(){return Xt(O),O.V.setInt32(0,this.lo,!0),O.V.setInt32(4,this.hi,!0),O.V.getBigInt64(0,!0)}};I.ZERO=new I(0,0);var qt={readUnknownField:!0,readerFactory:o=>new Le(o)};function Yt(o){return o?Object.assign(Object.assign({},qt),o):qt}var Le=class{constructor(e,t){this.varint64=Gt,this.uint32=Kt,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=t??new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0})}tag(){let e=this.uint32(),t=e>>>3,n=e&7;if(t<=0||n<0||n>5)throw new Error("illegal tag: field no "+t+" wire type "+n);return[t,n]}skip(e){let t=this.pos;switch(e){case h.Varint:for(;this.buf[this.pos++]&128;);break;case h.Bit64:this.pos+=4;case h.Bit32:this.pos+=4;break;case h.LengthDelimited:let n=this.uint32();this.pos+=n;break;case h.StartGroup:let i;for(;(i=this.tag()[1])!==h.EndGroup;)this.skip(i);break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(t,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return new I(...this.varint64())}uint64(){return new R(...this.varint64())}sint64(){let[e,t]=this.varint64(),n=-(e&1);return e=(e>>>1|(t&1)<<31)^n,t=t>>>1^n,new I(e,t)}bool(){let[e,t]=this.varint64();return e!==0||t!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return new R(this.sfixed32(),this.sfixed32())}sfixed64(){return new I(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(){return this.textDecoder.decode(this.bytes())}};function k(o,e){if(!o)throw new Error(e)}var zn=34028234663852886e22,Wn=-34028234663852886e22,$n=4294967295,Pn=2147483647,jn=-2147483648;function Z(o){if(typeof o!="number")throw new Error("invalid int 32: "+typeof o);if(!Number.isInteger(o)||o>Pn||o$n||o<0)throw new Error("invalid uint 32: "+o)}function ne(o){if(typeof o!="number")throw new Error("invalid float 32: "+typeof o);if(Number.isFinite(o)&&(o>zn||onew Ve};function _t(o){return o?Object.assign(Object.assign({},Ht),o):Ht}var Ve=class{constructor(e){this.stack=[],this.textEncoder=e??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let i=0;i>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(Y(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return Z(e),De(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let t=this.textEncoder.encode(e);return this.uint32(t.byteLength),this.raw(t)}float(e){ne(e);let t=new Uint8Array(4);return new DataView(t.buffer).setFloat32(0,e,!0),this.raw(t)}double(e){let t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),this.raw(t)}fixed32(e){Y(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){Z(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return Z(e),e=(e<<1^e>>31)>>>0,De(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),n=new DataView(t.buffer),i=I.from(e);return n.setInt32(0,i.lo,!0),n.setInt32(4,i.hi,!0),this.raw(t)}fixed64(e){let t=new Uint8Array(8),n=new DataView(t.buffer),i=R.from(e);return n.setInt32(0,i.lo,!0),n.setInt32(4,i.hi,!0),this.raw(t)}int64(e){let t=I.from(e);return me(t.lo,t.hi,this.buf),this}sint64(e){let t=I.from(e),n=t.hi>>31,i=t.lo<<1^n,r=(t.hi<<1|t.lo>>>31)^n;return me(i,r,this.buf),this}uint64(e){let t=R.from(e);return me(t.lo,t.hi,this.buf),this}};var Qt={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0},en={ignoreUnknownFields:!1};function Se(o){return o?Object.assign(Object.assign({},en),o):en}function se(o){return o?Object.assign(Object.assign({},Qt),o):Qt}var B=Symbol.for("protobuf-ts/message-type");function Ae(o){let e=!1,t=[];for(let n=0;n!i.includes(s))||!n&&i.some(s=>!r.known.includes(s)))return!1;if(t<1)return!0;for(let s of r.oneofs){let a=e[s];if(!nn(a))return!1;if(a.oneofKind===void 0)continue;let l=this.fields.find(f=>f.localName===a.oneofKind);if(!l||!this.field(a[a.oneofKind],l,n,t))return!1}for(let s of this.fields)if(s.oneof===void 0&&!this.field(e[s.localName],s,n,t))return!1;return!0}field(e,t,n,i){let r=t.repeat;switch(t.kind){case"scalar":return e===void 0?t.opt:r?this.scalars(e,t.T,i,t.L):this.scalar(e,t.T,t.L);case"enum":return e===void 0?t.opt:r?this.scalars(e,u.INT32,i):this.scalar(e,u.INT32);case"message":return e===void 0?!0:r?this.messages(e,t.T(),n,i):this.message(e,t.T(),n,i);case"map":if(typeof e!="object"||e===null)return!1;if(i<2)return!0;if(!this.mapKeys(e,t.K,i))return!1;switch(t.V.kind){case"scalar":return this.scalars(Object.values(e),t.V.T,i,t.V.L);case"enum":return this.scalars(Object.values(e),u.INT32,i);case"message":return this.messages(Object.values(e),t.V.T(),n,i)}break}return!0}message(e,t,n,i){return n?t.isAssignable(e,i):t.is(e,i)}messages(e,t,n,i){if(!Array.isArray(e))return!1;if(i<2)return!0;if(n){for(let r=0;rparseInt(r)),t,n);case u.BOOL:return this.scalars(i.slice(0,n).map(r=>r=="true"?!0:r=="false"?!1:r),t,n);default:return this.scalars(i,t,n,M.STRING)}}};function C(o,e){switch(e){case M.BIGINT:return o.toBigInt();case M.NUMBER:return o.toNumber();default:return o.toString()}}var ve=class{constructor(e){this.info=e}prepare(){var e;if(this.fMap===void 0){this.fMap={};let t=(e=this.info.fields)!==null&&e!==void 0?e:[];for(let n of t)this.fMap[n.name]=n,this.fMap[n.jsonName]=n,this.fMap[n.localName]=n}}assert(e,t,n){if(!e){let i=q(n);throw(i=="number"||i=="boolean")&&(i=n.toString()),new Error(`Cannot parse JSON ${i} for ${this.info.typeName}#${t}`)}}read(e,t,n){this.prepare();let i=[];for(let[r,s]of Object.entries(e)){let a=this.fMap[r];if(!a){if(!n.ignoreUnknownFields)throw new Error(`Found unknown field while reading ${this.info.typeName} from JSON format. JSON key: ${r}`);continue}let l=a.localName,f;if(a.oneof){if(i.includes(a.oneof))throw new Error(`Multiple members of the oneof group "${a.oneof}" of ${this.info.typeName} are present in JSON.`);i.push(a.oneof),f=t[a.oneof]={oneofKind:l}}else f=t;if(a.kind=="map"){if(s===null)continue;this.assert(te(s),a.name,s);let c=f[l];for(let[p,g]of Object.entries(s)){this.assert(g!==null,a.name+" map value",null);let m;switch(a.V.kind){case"message":m=a.V.T().internalJsonRead(g,n);break;case"enum":if(m=this.enum(a.V.T(),g,a.name,n.ignoreUnknownFields),m===!1)continue;break;case"scalar":m=this.scalar(g,a.V.T,a.V.L,a.name);break}this.assert(m!==void 0,a.name+" map value",g);let v=p;a.K==u.BOOL&&(v=v=="true"?!0:v=="false"?!1:v),v=this.scalar(v,a.K,M.STRING,a.name).toString(),c[v]=m}}else if(a.repeat){if(s===null)continue;this.assert(Array.isArray(s),a.name,s);let c=f[l];for(let p of s){this.assert(p!==null,a.name,null);let g;switch(a.kind){case"message":g=a.T().internalJsonRead(p,n);break;case"enum":if(g=this.enum(a.T(),p,a.name,n.ignoreUnknownFields),g===!1)continue;break;case"scalar":g=this.scalar(p,a.T,a.L,a.name);break}this.assert(g!==void 0,a.name,s),c.push(g)}}else switch(a.kind){case"message":if(s===null&&a.T().typeName!="google.protobuf.Value"){this.assert(a.oneof===void 0,a.name+" (oneof member)",null);continue}f[l]=a.T().internalJsonRead(s,n,f[l]);break;case"enum":let c=this.enum(a.T(),s,a.name,n.ignoreUnknownFields);if(c===!1)continue;f[l]=c;break;case"scalar":f[l]=this.scalar(s,a.T,a.L,a.name);break}}}enum(e,t,n,i){if(e[0]=="google.protobuf.NullValue"&&k(t===null,`Unable to parse field ${this.info.typeName}#${n}, enum ${e[0]} only accepts null.`),t===null)return 0;switch(typeof t){case"number":return k(Number.isInteger(t),`Unable to parse field ${this.info.typeName}#${n}, enum can only be integral number, got ${t}.`),t;case"string":let r=t;e[2]&&t.substring(0,e[2].length)===e[2]&&(r=t.substring(e[2].length));let s=e[1][r];return typeof s>"u"&&i?!1:(k(typeof s=="number",`Unable to parse field ${this.info.typeName}#${n}, enum ${e[0]} has no value for "${t}".`),s)}k(!1,`Unable to parse field ${this.info.typeName}#${n}, cannot parse enum value from ${typeof t}".`)}scalar(e,t,n,i){let r;try{switch(t){case u.DOUBLE:case u.FLOAT:if(e===null)return 0;if(e==="NaN")return Number.NaN;if(e==="Infinity")return Number.POSITIVE_INFINITY;if(e==="-Infinity")return Number.NEGATIVE_INFINITY;if(e===""){r="empty string";break}if(typeof e=="string"&&e.trim().length!==e.length){r="extra whitespace";break}if(typeof e!="string"&&typeof e!="number")break;let s=Number(e);if(Number.isNaN(s)){r="not a number";break}if(!Number.isFinite(s)){r="too large or small";break}return t==u.FLOAT&&ne(s),s;case u.INT32:case u.FIXED32:case u.SFIXED32:case u.SINT32:case u.UINT32:if(e===null)return 0;let a;if(typeof e=="number"?a=e:e===""?r="empty string":typeof e=="string"&&(e.trim().length!==e.length?r="extra whitespace":a=Number(e)),a===void 0)break;return t==u.UINT32?Y(a):Z(a),a;case u.INT64:case u.SFIXED64:case u.SINT64:if(e===null)return C(I.ZERO,n);if(typeof e!="number"&&typeof e!="string")break;return C(I.from(e),n);case u.FIXED64:case u.UINT64:if(e===null)return C(R.ZERO,n);if(typeof e!="number"&&typeof e!="string")break;return C(R.from(e),n);case u.BOOL:if(e===null)return!1;if(typeof e!="boolean")break;return e;case u.STRING:if(e===null)return"";if(typeof e!="string"){r="extra whitespace";break}try{encodeURIComponent(e)}catch(l){l="invalid UTF8";break}return e;case u.BYTES:if(e===null||e==="")return new Uint8Array(0);if(typeof e!="string")break;return jt(e)}}catch(s){r=s.message}this.assert(!1,i+(r?" - "+r:""),e)}};var be=class{constructor(e){var t;this.fields=(t=e.fields)!==null&&t!==void 0?t:[]}write(e,t){let n={},i=e;for(let r of this.fields){if(!r.oneof){let f=this.field(r,i[r.localName],t);f!==void 0&&(n[t.useProtoFieldName?r.name:r.jsonName]=f);continue}let s=i[r.oneof];if(s.oneofKind!==r.localName)continue;let a=r.kind=="scalar"||r.kind=="enum"?Object.assign(Object.assign({},t),{emitDefaultValues:!0}):t,l=this.field(r,s[r.localName],a);k(l!==void 0),n[t.useProtoFieldName?r.name:r.jsonName]=l}return n}field(e,t,n){let i;if(e.kind=="map"){k(typeof t=="object"&&t!==null);let r={};switch(e.V.kind){case"scalar":for(let[l,f]of Object.entries(t)){let c=this.scalar(e.V.T,f,e.name,!1,!0);k(c!==void 0),r[l.toString()]=c}break;case"message":let s=e.V.T();for(let[l,f]of Object.entries(t)){let c=this.message(s,f,e.name,n);k(c!==void 0),r[l.toString()]=c}break;case"enum":let a=e.V.T();for(let[l,f]of Object.entries(t)){k(f===void 0||typeof f=="number");let c=this.enum(a,f,e.name,!1,!0,n.enumAsInteger);k(c!==void 0),r[l.toString()]=c}break}(n.emitDefaultValues||Object.keys(r).length>0)&&(i=r)}else if(e.repeat){k(Array.isArray(t));let r=[];switch(e.kind){case"scalar":for(let l=0;l0||n.emitDefaultValues)&&(i=r)}else switch(e.kind){case"scalar":i=this.scalar(e.T,t,e.name,e.opt,n.emitDefaultValues);break;case"enum":i=this.enum(e.T(),t,e.name,e.opt,n.emitDefaultValues,n.enumAsInteger);break;case"message":i=this.message(e.T(),t,e.name,n);break}return i}enum(e,t,n,i,r,s){if(e[0]=="google.protobuf.NullValue")return null;if(t===void 0){k(i);return}if(!(t===0&&!r&&!i))return k(typeof t=="number"),k(Number.isInteger(t)),s||!e[1].hasOwnProperty(t)?t:e[2]?e[2]+e[1][t]:e[1][t]}message(e,t,n,i){return t===void 0?i.emitDefaultValues?null:void 0:e.internalJsonWrite(t,i)}scalar(e,t,n,i,r){if(t===void 0){k(i);return}let s=r||i;switch(e){case u.INT32:case u.SFIXED32:case u.SINT32:return t===0?s?0:void 0:(Z(t),t);case u.FIXED32:case u.UINT32:return t===0?s?0:void 0:(Y(t),t);case u.FLOAT:ne(t);case u.DOUBLE:return t===0?s?0:void 0:(k(typeof t=="number"),Number.isNaN(t)?"NaN":t===Number.POSITIVE_INFINITY?"Infinity":t===Number.NEGATIVE_INFINITY?"-Infinity":t);case u.STRING:return t===""?s?"":void 0:(k(typeof t=="string"),t);case u.BOOL:return t===!1?s?!1:void 0:(k(typeof t=="boolean"),t);case u.UINT64:case u.FIXED64:k(typeof t=="number"||typeof t=="string"||typeof t=="bigint");let a=R.from(t);return a.isZero()&&!s?void 0:a.toString();case u.INT64:case u.SFIXED64:case u.SINT64:k(typeof t=="number"||typeof t=="string"||typeof t=="bigint");let l=I.from(t);return l.isZero()&&!s?void 0:l.toString();case u.BYTES:return k(t instanceof Uint8Array),t.byteLength?Jt(t):s?"":void 0}}};function fe(o,e=M.STRING){switch(o){case u.BOOL:return!1;case u.UINT64:case u.FIXED64:return C(R.ZERO,e);case u.INT64:case u.SFIXED64:case u.SINT64:return C(I.ZERO,e);case u.DOUBLE:case u.FLOAT:return 0;case u.BYTES:return new Uint8Array(0);case u.STRING:return"";default:return 0}}var ke=class{constructor(e){this.info=e}prepare(){var e;if(!this.fieldNoToField){let t=(e=this.info.fields)!==null&&e!==void 0?e:[];this.fieldNoToField=new Map(t.map(n=>[n.no,n]))}}read(e,t,n,i){this.prepare();let r=i===void 0?e.len:e.pos+i;for(;e.post.no-n.no)}}write(e,t,n){this.prepare();for(let r of this.fields){let s,a,l=r.repeat,f=r.localName;if(r.oneof){let c=e[r.oneof];if(c.oneofKind!==f)continue;s=c[f],a=!0}else s=e[f],a=!1;switch(r.kind){case"scalar":case"enum":let c=r.kind=="enum"?u.INT32:r.T;if(l)if(k(Array.isArray(s)),l==le.PACKED)this.packed(t,c,r.no,s);else for(let p of s)this.scalar(t,c,r.no,p,!0);else s===void 0?k(r.opt):this.scalar(t,c,r.no,s,a||r.opt);break;case"message":if(l){k(Array.isArray(s));for(let p of s)this.message(t,n,r.T(),r.no,p)}else this.message(t,n,r.T(),r.no,s);break;case"map":k(typeof s=="object"&&s!==null);for(let[p,g]of Object.entries(s))this.mapEntry(t,n,r,p,g);break}}let i=n.writeUnknownFields;i!==!1&&(i===!0?d.onWrite:i)(this.info.typeName,e,t)}mapEntry(e,t,n,i,r){e.tag(n.no,h.LengthDelimited),e.fork();let s=i;switch(n.K){case u.INT32:case u.FIXED32:case u.UINT32:case u.SFIXED32:case u.SINT32:s=Number.parseInt(i);break;case u.BOOL:k(i=="true"||i=="false"),s=i=="true";break}switch(this.scalar(e,n.K,1,s,!0),n.V.kind){case"scalar":this.scalar(e,n.V.T,2,r,!0);break;case"enum":this.scalar(e,u.INT32,2,r,!0);break;case"message":this.message(e,t,n.V.T(),2,r);break}e.join()}message(e,t,n,i,r){r!==void 0&&(n.internalBinaryWrite(r,e.tag(i,h.LengthDelimited).fork(),t),e.join())}scalar(e,t,n,i,r){let[s,a,l]=this.scalarInfo(t,i);(!l||r)&&(e.tag(n,s),e[a](i))}packed(e,t,n,i){if(!i.length)return;k(t!==u.BYTES&&t!==u.STRING),e.tag(n,h.LengthDelimited),e.fork();let[,r]=this.scalarInfo(t);for(let s=0;sMe}])}create(e){let t={commandDms:[]};return globalThis.Object.defineProperty(t,B,{enumerable:!1,value:this}),e!==void 0&&N(this,t,e),t}internalBinaryRead(e,t,n,i){let r=i??this.create(),s=e.pos+t;for(;e.posCe}])}create(e){let t={};return globalThis.Object.defineProperty(t,B,{enumerable:!1,value:this}),e!==void 0&&N(this,t,e),t}internalBinaryRead(e,t,n,i){let r=i??this.create(),s=e.pos+t;for(;e.pos ${e}`)}function ie(o,e){let t=o.toBinary(e);$done({body:Jn(t)})}var qe=class extends U{constructor(){super("ModeStatus",[{no:1,name:"modes",kind:"message",repeat:1,T:()=>Xe}])}create(e){let t={modes:[]};return globalThis.Object.defineProperty(t,B,{enumerable:!1,value:this}),e!==void 0&&N(this,t,e),t}internalBinaryRead(e,t,n,i){let r=i??this.create(),s=e.pos+t;for(;e.posZe}])}create(e){let t={id:0,name:"",f4:0};return globalThis.Object.defineProperty(t,B,{enumerable:!1,value:this}),e!==void 0&&N(this,t,e),t}internalBinaryRead(e,t,n,i){let r=i??this.create(),s=e.pos+t;for(;e.posQe}])}create(e){let t={};return globalThis.Object.defineProperty(t,B,{enumerable:!1,value:this}),e!==void 0&&N(this,t,e),t}internalBinaryRead(e,t,n,i){let r=i??this.create(),s=e.pos+t;for(;e.postt},{no:6,name:"audios",kind:"message",repeat:1,T:()=>et}])}create(e){let t={quality:0,format:"",timelength:0n,videoCodecid:0,videos:[],audios:[]};return globalThis.Object.defineProperty(t,B,{enumerable:!1,value:this}),e!==void 0&&N(this,t,e),t}internalBinaryRead(e,t,n,i){let r=i??this.create(),s=e.pos+t;for(;e.posnt},{no:2,name:"dash_video",kind:"message",T:()=>it}])}create(e){let t={};return globalThis.Object.defineProperty(t,B,{enumerable:!1,value:this}),e!==void 0&&N(this,t,e),t}internalBinaryRead(e,t,n,i){let r=i??this.create(),s=e.pos+t;for(;e.pos["PlayErr",ot]},{no:5,name:"limit",kind:"message",T:()=>rt},{no:6,name:"need_vip",kind:"scalar",T:8},{no:7,name:"need_login",kind:"scalar",T:8},{no:8,name:"intact",kind:"scalar",T:8},{no:9,name:"no_rexcode",kind:"scalar",T:8},{no:10,name:"attribute",kind:"scalar",T:3,L:0},{no:11,name:"new_description",kind:"scalar",T:9},{no:12,name:"display_desc",kind:"scalar",T:9},{no:13,name:"superscript",kind:"scalar",T:9}])}create(e){let t={quality:0,format:"",description:"",errCode:0,needVip:!1,needLogin:!1,intact:!1,noRexcode:!1,attribute:0n,newDescription:"",displayDesc:"",superscript:""};return globalThis.Object.defineProperty(t,B,{enumerable:!1,value:this}),e!==void 0&&N(this,t,e),t}internalBinaryRead(e,t,n,i){let r=i??this.create(),s=e.pos+t;for(;e.posf.typeName===i);if(!s)throw new globalThis.Error("Unable to convert google.protobuf.Any with typeUrl '"+e.typeUrl+"' to JSON. The specified type "+i+" is not available in the type registry.");let a=s.fromBinary(e.value,{readUnknownField:!1}),l=s.internalJsonWrite(a,r);return(i.startsWith("google.protobuf.")||!te(l))&&(l={value:l}),l["@type"]=e.typeUrl,l}internalJsonRead(e,t,n){var i;if(!te(e))throw new globalThis.Error("Unable to parse google.protobuf.Any from JSON "+q(e)+".");if(typeof e["@type"]!="string"||e["@type"]=="")return this.create();let r=this.typeUrlToName(e["@type"]),s=(i=t?.typeRegistry)===null||i===void 0?void 0:i.find(l=>l.typeName==r);if(!s)throw new globalThis.Error("Unable to parse google.protobuf.Any from JSON. The specified type "+r+" is not available in the type registry.");let a;if(r.startsWith("google.protobuf.")&&e.hasOwnProperty("value"))a=s.fromJson(e.value,t);else{let l=Object.assign({},e);delete l["@type"],a=s.fromJson(l,t)}return n===void 0&&(n=this.create()),n.typeUrl=e["@type"],n.value=s.toBinary(a),n}typeNameToUrl(e){if(!e.length)throw new Error("invalid type name: "+e);return"type.googleapis.com/"+e}typeUrlToName(e){if(!e.length)throw new Error("invalid type url: "+e);let t=e.lastIndexOf("/"),n=t>0?e.substring(t+1):e;if(!n.length)throw new Error("invalid type url: "+e);return n}create(e){let t={typeUrl:"",value:new Uint8Array(0)};return globalThis.Object.defineProperty(t,B,{enumerable:!1,value:this}),e!==void 0&&N(this,t,e),t}internalBinaryRead(e,t,n,i){let r=i??this.create(),s=e.pos+t;for(;e.posH}])}create(e){let t={};return globalThis.Object.defineProperty(t,B,{enumerable:!1,value:this}),e!==void 0&&N(this,t,e),t}internalBinaryRead(e,t,n,i){let r=i??this.create(),s=e.pos+t;for(;e.posH}])}create(e){let t={};return globalThis.Object.defineProperty(t,B,{enumerable:!1,value:this}),e!==void 0&&N(this,t,e),t}internalBinaryRead(e,t,n,i){let r=i??this.create(),s=e.pos+t;for(;e.posJ},{no:4,name:"duration",kind:"scalar",T:3,L:0},{no:5,name:"aid",kind:"scalar",T:3,L:0}])}create(e){let t={duration:0n,aid:0n};return globalThis.Object.defineProperty(t,B,{enumerable:!1,value:this}),e!==void 0&&N(this,t,e),t}internalBinaryRead(e,t,n,i){let r=i??this.create(),s=e.pos+t;for(;e.posyt},{no:30,name:"cms",kind:"message",repeat:1,T:()=>J},{no:31,name:"cm_config",kind:"message",T:()=>dt},{no:41,name:"cm_ipad",kind:"message",T:()=>gt}])}create(e){let t={relates:[],cms:[]};return globalThis.Object.defineProperty(t,B,{enumerable:!1,value:this}),e!==void 0&&N(this,t,e),t}internalBinaryRead(e,t,n,i){let r=i??this.create(),s=e.pos+t;for(;e.pos.+):\/\/(?[^/]+)\/?(?[^?]+)?\??(?.*)?/,ue=class{constructor(e=""){if(this.name="URL v1.0.2",!e)throw new Error("Empty URL");this.parse(e)}parse(e){let{scheme:t,host:n,path:i="",params:r}=e.match(Zn)?.groups??{};this.scheme=t,this.host=n,this.path=i,this.params=r?r.split("&").reduce((s,a)=>{let[l,f]=a.split("=");return s[l]=f,s},{}):{}}toString(){let e=this.scheme+"://"+this.host+"/"+this.path;return this.params&&(e+="?"+Object.entries(this.params).reduce((t,[n,i],r)=>t+(r?"&":"")+n+"="+i,"")),e}};var xt=class extends U{constructor(){super("MainListReply",[{no:11,name:"cm",kind:"message",T:()=>J}])}create(e){let t={};return globalThis.Object.defineProperty(t,B,{enumerable:!1,value:this}),e!==void 0&&N(this,t,e),t}internalBinaryRead(e,t,n,i){let r=i??this.create(),s=e.pos+t;for(;e.posn.name==="teenagers");t?.f5?.f1&&(t.f5.f1=0,ie(_e,e))}function hn(o){let e=Je();if(!e)return;let t=pt.fromBinary(o),n=t.playURL.videos,i=t.playURL.audios;Ke(n,e),Ke(i,e),ie(pt,t)}function pn(o){let e=Nt.fromBinary(o),t=Je();if(delete e.cmConfig,delete e.cmIpad,e.cms.length=0,t)for(let n of e.relates){let i=new ue(n.uri),r=i.params.player_preload;if(r)try{let s=decodeURIComponent(r),a=JSON.parse(s);Ge(a.dash.video,t),Ge(a.dash.audio,t),i.params.player_preload=encodeURIComponent(JSON.stringify(a)),n.uri=i.toString(),console.log(`CDN replace -> ${t}`)}catch(s){console.log(`[CDN ERROR] ${s}`);break}}ie(Nt,e)}function mn(o){let e=It.fromBinary(o);delete e.cm,ie(It,e)}var qn=$request.url,gn=$response.body,Yn=typeof $utils?.ungzip=="function"?$utils.ungzip:Pt,Hn=gn.slice(0,5),Bt=gn.slice(5);Hn[0]&&(Bt=Yn(Bt));var dn={"v1.DM/DmView":un,"Teenagers/ModeStatus":cn,"v1.PlayURL/PlayView":hn,"v1.View/View":pn,"v1.Reply/MainList":mn};for(let o in dn)if(qn.includes(o)){dn[o](Bt);break}$done({});})(); diff --git a/Scripts/AdBlock/Bilibili/BiliBili.response.js b/Scripts/AdBlock/Bilibili/BiliBili.response.js new file mode 100644 index 0000000..01a8de1 --- /dev/null +++ b/Scripts/AdBlock/Bilibili/BiliBili.response.js @@ -0,0 +1,689 @@ +/* +WEBSITE: https://biliuniverse.io +README: https://github.com/BiliUniverse +*/ +const $ = new Env("📺 BiliBili: 🛡️ ADBlock v0.3.0(2) response"); +const URL = new URLs(); +const DataBase = { + "ADBlock":{ + "Settings":{ + "Switch":true, + "Detail":{"splash":true,"feed":true,"activity":false,"story":true,"cinema":true,"view":true,"search":true,"xlive":true,"Hot_search":true,"Hot_topics":true,"Most_visited":true,"Dynamic_adcard":true} + } + }, + "Default": { + "Settings":{"Switch":true} + } +}; + +/***************** Processing *****************/ +(async () => { + const { Settings, Caches, Configs } = setENV("BiliBili", "ADBlock", DataBase); + switch (Settings?.Switch) { + case true: + default: + let url = URL.parse($request?.url); + const METHOD = $request?.method, HOST = url?.host, PATH = url?.path, PATHs = PATH.split("/"); + // 解析格式 + const FORMAT = ($response?.headers?.["Content-Type"] ?? $response?.headers?.["content-type"])?.split(";")?.[0]; + $.log(`⚠ ${$.name}`, `METHOD: ${METHOD}`, `HOST: ${HOST}`, `PATH: ${PATH}`, `PATHs: ${PATHs}`, `FORMAT: ${FORMAT}`, ""); + // 创建空数据 + let body = { "code": 0, "message": "0", "data": {} }; + // 格式判断 + switch (FORMAT) { + case undefined: // 视为无body + break; + case "application/x-www-form-urlencoded": + case "text/plain": + case "text/html": + default: + break; + case "text/xml": + case "text/plist": + case "application/xml": + case "application/plist": + case "application/x-plist": + break; + case "text/json": + case "application/json": + body = JSON.parse($response.body); + // 解析链接 + switch (HOST) { + case "www.bilibili.com": + break; + case "app.bilibili.com": + case "app.biliapi.net": + switch (PATH) { + case "x/v2/splash/show": // 开屏页 + case "x/v2/splash/list": // 开屏页 + case "x/v2/splash/brand/list": // 开屏页 + case "x/v2/splash/event/list2": // 开屏页 + switch (Settings?.Detail?.splash) { + case true: + default: + const item = ["account", "event_list", "preload", "show"]; + if (body.data) { + item.forEach((i) => { + delete body.data[i]; + }); + $.log(`🎉 ${$.name}`, "开屏页广告去除"); + } + break; + case false: + $.log(`🚧 ${$.name}`, "用户设置开屏页广告不去除"); + break; + }; + break; + case "x/v2/feed/index": // 推荐页 + switch (Settings?.Detail?.feed) { + case true: + default: + if (body.data.items?.length) { + let params = url?.params;//区分pad与phone + body.data.items = await Promise.all(body.data.items.map(async item => { + const { card_type: cardType, card_goto: cardGoto } = item; + if (cardType && cardGoto) { + if (['banner_v8', 'banner_ipad_v8'].includes(cardType) && cardGoto === 'banner') { + switch (Settings?.Detail?.activity) { + case true: + default: + Caches.banner_hash = item.hash; + $.setjson(Caches, "@BiliBili.ADBlock.Caches"); // 获取banner_hash,无此字段会有活动页且此字段无法伪造. + $.log(`🎉 ${$.name}`, "推荐页活动大图去除"); + return undefined; + case false: + if (item.banner_item) { + item.banner_item = item.banner_item.filter(i => { + if (i.type === 'ad') { + $.log(`🎉 ${$.name}`, "推荐页大图广告去除"); + return false; + } + return true; + }); + } + break; + } + } else if (['cm_v2', 'cm_v1'].includes(cardType) && ['ad_web_s', 'ad_av', 'ad_web_gif'].includes(cardGoto)) { + // ad_player大视频广告 ad_web_gif大gif广告 ad_web_s普通小广告 ad_av创作推广广告 ad_inline_3d 上方大的视频3d广告 ad_inline_eggs 上方大的视频广告 + $.log(`🎉 ${$.name}`, `${cardGoto}广告去除`); + if (params.device !== "phone") { + return undefined;//pad直接去除 + } else { + await fixPosition().then(result => item = result);//小广告补位 + } + } else if (cardType === 'cm_v2' && ['ad_player', 'ad_inline_3d', 'ad_inline_eggs'].includes(cardGoto)) { + $.log(`🎉 ${$.name}`, `${cardGoto}广告去除`); + return undefined;//大广告直接去除 + } else if (cardType === 'small_cover_v10' && cardGoto === 'game') { + $.log(`🎉 ${$.name}`, "游戏广告去除"); + if (params.device !== "phone") { + return undefined;//pad直接去除 + } else { + await fixPosition().then(result => item = result);//小广告补位 + } + } else if (cardType === 'cm_double_v9' && cardGoto === 'ad_inline_av') { + $.log(`🎉 ${$.name}`, "大视频广告去除"); + return undefined;//大广告直接去除 + } + } + return item; + })); + body.data.items = body.data.items.filter(fix => fix !== undefined); + } + async function fixPosition() { + let itemsCache = $.getdata("@BiliBili.Index.Caches",""); + let singleItem = {}; + if (itemsCache.length > 0) { + singleItem = itemsCache.pop(); + $.log(`🎉 ${$.name}`, "推荐页空缺位填充成功"); + } else {//重新获取填充位 + const myRequest = { + url: $request.url, + headers: $request.heders + } + await $.http.get(myRequest).then(response => { + try { + const body = $.toObj(response.body) + if (body?.code === 0 && body?.message === "0") { + body.data.items = body.data.items.map(item => { + const { card_type: cardType, card_goto: cardGoto } = item; + if (cardType && cardGoto) { + if (cardType === 'banner_v8' && cardGoto === 'banner') { + return undefined; + } else if (cardType === 'cm_v2' && ['ad_web_s', 'ad_av', 'ad_web_gif', 'ad_player', 'ad_inline_3d', 'ad_inline_eggs'].includes(cardGoto)) { + return undefined; + } else if (cardType === 'small_cover_v10' && cardGoto === 'game') { + return undefined; + } else if (cardType === 'cm_double_v9' && cardGoto === 'ad_inline_av') { + return undefined; + } else if (cardType === 'large_cover_v9' && cardGoto === 'inline_av_v2') {//补位不需要大视频 + return undefined; + } + } + return item; + }).filter(fix => fix !== undefined); + $.setdata(body.data.items, "@BiliBili.Index.Caches"); + $.log(`🎉 ${$.name}`, "推荐页缓存数组补充成功"); + } else { + $.log(`🚧 ${$.name}`, "访问推荐页尝试填补失败"); + } + } catch (e) { + $.logErr(e, response) + } + }) + itemsCache = $.getdata("@BiliBili.Index.Caches",""); + if (itemsCache.length > 0) { + singleItem = itemsCache.pop(); + $.log(`🎉 ${$.name}`, "推荐页空缺位填充成功"); + } + } + $.setdata(itemsCache, "@BiliBili.Index.Caches"); + return singleItem; + } + break; + case false: + $.log(`🚧 ${$.name}`, "用户设置推荐页广告不去除"); + break; + }; + break; + case "x/v2/feed/index/story": // 首页短视频流 + switch (Settings?.Detail?.story) { + case true: + default: + if (body.data?.items) { + // vertical_live 直播内容 + // vertical_pgc 大会员专享 + body.data.items = body.data.items.filter((i) => !( + i.hasOwnProperty("ad_info") || + ["vertical_ad_av", "vertical_pgc"].includes(i.card_goto) + ) + ); + $.log(`🎉 ${$.name}`, "首页短视频流广告去除"); + } + break; + case false: + $.log(`🚧 ${$.name}`, "用户设置首页短视频流广告不去除"); + break; + }; + break; + case "x/v2/search/square": // 搜索页 + switch (Settings?.Detail?.Hot_search) { + case true: + default: + body.data = body.data.filter((i) => !(i.type === "trending")); + $.log(`🎉 ${$.name}`, "搜索页热搜内容去除"); + break; + case false: + $.log(`🚧 ${$.name}`, "用户设置搜索页热搜内容不去除"); + break; + } + break; + }; + break; + case "api.bilibili.com": + case "api.biliapi.net": + switch (PATH) { + case "pgc/player/api/playurl": // 番剧-播放地址-api + case "pgc/player/web/playurl": // 番剧-播放地址-web + case "pgc/player/web/playurl/html5": // 番剧-播放地址-web-HTML5 + break; + case "pgc/view/v2/app/season": // 番剧页面-内容-app + break; + case "pgc/view/web/season": // 番剧-内容-web + case "pgc/view/pc/season": // 番剧-内容-pc + break; + case "pgc/page/bangumi": // 追番页 + case "pgc/page/cinema/tab": // 观影页 + switch (Settings?.Detail?.cinema) { + case true: + default: + if (body.result?.modules) { + body.result.modules.forEach((i) => { + if (i.style.startsWith("banner")) { + i.items = i.items.filter((j) => j.link.includes("play")); + } else if (i.style.startsWith("function")) { + i.items = i.items.filter((j) => j.blink.startsWith("bilibili")); + } else if ([241, 1283, 1284, 1441].includes(i.module_id)) { + i.items = []; + } else if (i.style.startsWith("tip")) { + i.items = []; + } + }); + $.log(`🎉 ${$.name}`, "观影页广告去除"); + } + break; + case false: + $.log(`🚧 ${$.name}`, "用户设置观影页广告不去除"); + break; + }; + break; + case "x/player/wbi/playurl": // UGC-用户生产内容-播放地址 + break; + case "x/space/acc/info": // 用户空间-账号信息-pc + case "x/space/wbi/acc/info": // 用户空间-账号信息-wbi + switch (url.params?.vmid || url.params?.mid) { + case "11783021": // 哔哩哔哩番剧出差 + case "1988098633": // b站_戲劇咖 + case "2042149112": // b站_綜藝咖 + break; + default: + break; + }; + break; + }; + break; + case "api.live.bilibili.com": + switch (PATH) { + case "xlive/app-room/v1/index/getInfoByRoom": // 直播 + switch (Settings?.Detail?.xlive) { + case true: + default: + if (body.data?.activity_banner_info) { + body.data.activity_banner_info = null; + $.log(`🎉 ${$.name}`, "直播banner广告去除"); + } + if (body.data?.shopping_info) { + body.data.shopping_info = { + is_show: 0 + }; + $.log(`🎉 ${$.name}`, "直播购物广告去除"); + } + if (body.data?.new_tab_info?.outer_list?.length > 0) { + body.data.new_tab_info.outer_list = + body.data.new_tab_info.outer_list.filter((i) => i.biz_id !== 33); + } + break; + case false: + $.log(`🚧 ${$.name}`, "用户设置直播页广告不去除"); + break; + }; + break; + }; + break; + }; + $response.body = JSON.stringify(body); + break; + case "application/x-protobuf": + case "application/grpc": + case "application/grpc+proto": + case "applecation/octet-stream": + let rawBody = $.isQuanX() ? new Uint8Array($response.bodyBytes) : $response.body; + //$.log(`🚧 ${$.name}`, `isBuffer? ${ArrayBuffer.isView(rawBody)}: ${JSON.stringify(rawBody)}`, ""); + /****************** initialization start *******************/ + // timostamm/protobuf-ts + !function(i){"use strict";function _(n,e,i){return e<=n&&n<=i}"undefined"!=typeof module&&module.exports&&!i["encoding-indexes"]&&(i["encoding-indexes"]=require("./encoding-indexes.js")["encoding-indexes"]);var l=Math.floor;function s(n){if(void 0===n)return{};if(n===Object(n))return n;throw TypeError("Could not convert argument to dictionary")}function u(n){return 0<=n&&n<=127}var a=u,b=-1;function c(n){this.tokens=[].slice.call(n),this.tokens.reverse()}c.prototype={endOfStream:function(){return!this.tokens.length},read:function(){return this.tokens.length?this.tokens.pop():b},prepend:function(n){if(Array.isArray(n))for(var e=n;e.length;)this.tokens.push(e.pop());else this.tokens.push(n)},push:function(n){if(Array.isArray(n))for(var e=n;e.length;)this.tokens.unshift(e.shift());else this.tokens.unshift(n)}};var w=-1;function m(n,e){if(n)throw TypeError("Decoder error");return e||65533}function f(n){throw TypeError("The code point "+n+" could not be encoded.")}function r(n){return n=String(n).trim().toLowerCase(),Object.prototype.hasOwnProperty.call(d,n)?d[n]:null}var t,o,n=[{encodings:[{labels:["unicode-1-1-utf-8","utf-8","utf8"],name:"UTF-8"}],heading:"The Encoding"},{encodings:[{labels:["866","cp866","csibm866","ibm866"],name:"IBM866"},{labels:["csisolatin2","iso-8859-2","iso-ir-101","iso8859-2","iso88592","iso_8859-2","iso_8859-2:1987","l2","latin2"],name:"ISO-8859-2"},{labels:["csisolatin3","iso-8859-3","iso-ir-109","iso8859-3","iso88593","iso_8859-3","iso_8859-3:1988","l3","latin3"],name:"ISO-8859-3"},{labels:["csisolatin4","iso-8859-4","iso-ir-110","iso8859-4","iso88594","iso_8859-4","iso_8859-4:1988","l4","latin4"],name:"ISO-8859-4"},{labels:["csisolatincyrillic","cyrillic","iso-8859-5","iso-ir-144","iso8859-5","iso88595","iso_8859-5","iso_8859-5:1988"],name:"ISO-8859-5"},{labels:["arabic","asmo-708","csiso88596e","csiso88596i","csisolatinarabic","ecma-114","iso-8859-6","iso-8859-6-e","iso-8859-6-i","iso-ir-127","iso8859-6","iso88596","iso_8859-6","iso_8859-6:1987"],name:"ISO-8859-6"},{labels:["csisolatingreek","ecma-118","elot_928","greek","greek8","iso-8859-7","iso-ir-126","iso8859-7","iso88597","iso_8859-7","iso_8859-7:1987","sun_eu_greek"],name:"ISO-8859-7"},{labels:["csiso88598e","csisolatinhebrew","hebrew","iso-8859-8","iso-8859-8-e","iso-ir-138","iso8859-8","iso88598","iso_8859-8","iso_8859-8:1988","visual"],name:"ISO-8859-8"},{labels:["csiso88598i","iso-8859-8-i","logical"],name:"ISO-8859-8-I"},{labels:["csisolatin6","iso-8859-10","iso-ir-157","iso8859-10","iso885910","l6","latin6"],name:"ISO-8859-10"},{labels:["iso-8859-13","iso8859-13","iso885913"],name:"ISO-8859-13"},{labels:["iso-8859-14","iso8859-14","iso885914"],name:"ISO-8859-14"},{labels:["csisolatin9","iso-8859-15","iso8859-15","iso885915","iso_8859-15","l9"],name:"ISO-8859-15"},{labels:["iso-8859-16"],name:"ISO-8859-16"},{labels:["cskoi8r","koi","koi8","koi8-r","koi8_r"],name:"KOI8-R"},{labels:["koi8-ru","koi8-u"],name:"KOI8-U"},{labels:["csmacintosh","mac","macintosh","x-mac-roman"],name:"macintosh"},{labels:["dos-874","iso-8859-11","iso8859-11","iso885911","tis-620","windows-874"],name:"windows-874"},{labels:["cp1250","windows-1250","x-cp1250"],name:"windows-1250"},{labels:["cp1251","windows-1251","x-cp1251"],name:"windows-1251"},{labels:["ansi_x3.4-1968","ascii","cp1252","cp819","csisolatin1","ibm819","iso-8859-1","iso-ir-100","iso8859-1","iso88591","iso_8859-1","iso_8859-1:1987","l1","latin1","us-ascii","windows-1252","x-cp1252"],name:"windows-1252"},{labels:["cp1253","windows-1253","x-cp1253"],name:"windows-1253"},{labels:["cp1254","csisolatin5","iso-8859-9","iso-ir-148","iso8859-9","iso88599","iso_8859-9","iso_8859-9:1989","l5","latin5","windows-1254","x-cp1254"],name:"windows-1254"},{labels:["cp1255","windows-1255","x-cp1255"],name:"windows-1255"},{labels:["cp1256","windows-1256","x-cp1256"],name:"windows-1256"},{labels:["cp1257","windows-1257","x-cp1257"],name:"windows-1257"},{labels:["cp1258","windows-1258","x-cp1258"],name:"windows-1258"},{labels:["x-mac-cyrillic","x-mac-ukrainian"],name:"x-mac-cyrillic"}],heading:"Legacy single-byte encodings"},{encodings:[{labels:["chinese","csgb2312","csiso58gb231280","gb2312","gb_2312","gb_2312-80","gbk","iso-ir-58","x-gbk"],name:"GBK"},{labels:["gb18030"],name:"gb18030"}],heading:"Legacy multi-byte Chinese (simplified) encodings"},{encodings:[{labels:["big5","big5-hkscs","cn-big5","csbig5","x-x-big5"],name:"Big5"}],heading:"Legacy multi-byte Chinese (traditional) encodings"},{encodings:[{labels:["cseucpkdfmtjapanese","euc-jp","x-euc-jp"],name:"EUC-JP"},{labels:["csiso2022jp","iso-2022-jp"],name:"ISO-2022-JP"},{labels:["csshiftjis","ms932","ms_kanji","shift-jis","shift_jis","sjis","windows-31j","x-sjis"],name:"Shift_JIS"}],heading:"Legacy multi-byte Japanese encodings"},{encodings:[{labels:["cseuckr","csksc56011987","euc-kr","iso-ir-149","korean","ks_c_5601-1987","ks_c_5601-1989","ksc5601","ksc_5601","windows-949"],name:"EUC-KR"}],heading:"Legacy multi-byte Korean encodings"},{encodings:[{labels:["csiso2022kr","hz-gb-2312","iso-2022-cn","iso-2022-cn-ext","iso-2022-kr"],name:"replacement"},{labels:["utf-16be"],name:"UTF-16BE"},{labels:["utf-16","utf-16le"],name:"UTF-16LE"},{labels:["x-user-defined"],name:"x-user-defined"}],heading:"Legacy miscellaneous encodings"}],d={},h=(n.forEach(function(n){n.encodings.forEach(function(e){e.labels.forEach(function(n){d[n]=e})})}),{}),g={};function y(n,e){return e&&e[n]||null}function p(n,e){e=e.indexOf(n);return-1===e?null:e}function v(n){if("encoding-indexes"in i)return i["encoding-indexes"][n];throw Error("Indexes missing. Did you forget to include encoding-indexes.js first?")}var x="utf-8";function O(n,e){if(!(this instanceof O))throw TypeError("Called as a function. Did you forget 'new'?");n=void 0!==n?String(n):x,e=s(e),this._encoding=null,this._decoder=null,this._ignoreBOM=!1,this._BOMseen=!1,this._error_mode="replacement",this._do_not_flush=!1;var i=r(n);if(null===i||"replacement"===i.name)throw RangeError("Unknown encoding: "+n);if(g[i.name])return(n=this)._encoding=i,Boolean(e.fatal)&&(n._error_mode="fatal"),Boolean(e.ignoreBOM)&&(n._ignoreBOM=!0),Object.defineProperty||(this.encoding=n._encoding.name.toLowerCase(),this.fatal="fatal"===n._error_mode,this.ignoreBOM=n._ignoreBOM),n;throw Error("Decoder not present. Did you forget to include encoding-indexes.js first?")}function k(n,e){if(!(this instanceof k))throw TypeError("Called as a function. Did you forget 'new'?");e=s(e),this._encoding=null,this._encoder=null,this._do_not_flush=!1,this._fatal=Boolean(e.fatal)?"fatal":"replacement";if(Boolean(e.NONSTANDARD_allowLegacyEncoding)){e=r(n=void 0!==n?String(n):x);if(null===e||"replacement"===e.name)throw RangeError("Unknown encoding: "+n);if(!h[e.name])throw Error("Encoder not present. Did you forget to include encoding-indexes.js first?");this._encoding=e}else this._encoding=r("utf-8"),void 0!==n&&"console"in i&&console.warn("TextEncoder constructor called with encoding label, which is ignored.");return Object.defineProperty||(this.encoding=this._encoding.name.toLowerCase()),this}function e(n){var r=n.fatal,t=0,o=0,s=0,l=128,a=191;this.handler=function(n,e){if(e===b&&0!==s)return s=0,m(r);if(e===b)return w;if(0===s){if(_(e,0,127))return e;if(_(e,194,223))s=1,t=31&e;else if(_(e,224,239))224===e&&(l=160),237===e&&(a=159),s=2,t=15&e;else{if(!_(e,240,244))return m(r);240===e&&(l=144),244===e&&(a=143),s=3,t=7&e}return null}var i;return _(e,l,a)?(l=128,a=191,t=t<<6|63&e,(o+=1)!==s?null:(i=t,t=s=o=0,i)):(t=s=o=0,l=128,a=191,n.prepend(e),m(r))}}function E(n){n.fatal;this.handler=function(n,e){if(e===b)return w;if(a(e))return e;_(e,128,2047)?(i=1,r=192):_(e,2048,65535)?(i=2,r=224):_(e,65536,1114111)&&(i=3,r=240);for(var i,r,t=[(e>>6*i)+r];0>6*(i-1)),--i;return t}}function j(i,n){var r=n.fatal;this.handler=function(n,e){return e===b?w:u(e)?e:null===(e=i[e-128])?m(r):e}}function B(r,n){n.fatal;this.handler=function(n,e){var i;return e===b?w:a(e)?e:(null===(i=p(e,r))&&f(e),i+128)}}function S(n){var o=n.fatal,s=0,l=0,a=0;this.handler=function(n,e){var i,r,t;return e===b&&0===s&&0===l&&0===a?w:(e!==b||0===s&&0===l&&0===a||(a=l=s=0,m(o)),0!==a?(i=null,_(e,48,57)&&(i=function(n){if(39419>8,n=255&n;return e?[i,n]:[n,i]}function L(r,n){var t=n.fatal,o=null,s=null;this.handler=function(n,e){var i;return e!==b||null===o&&null===s?e===b&&null===o&&null===s?w:null===o?(o=e,null):(e=r?(o<<8)+e:(e<<8)+o,(o=null)!==s?(i=s,s=null,_(e,56320,57343)?65536+1024*(i-55296)+(e-56320):(n.prepend(A(e,r)),m(t))):_(e,55296,56319)?(s=e,null):_(e,56320,57343)?m(t):e):m(t)}}function M(r,n){n.fatal;this.handler=function(n,e){var i;return e===b?w:_(e,0,65535)?A(e,r):(i=A(55296+(e-65536>>10),r),e=A(56320+(e-65536&1023),r),i.concat(e))}}function N(n){n.fatal;this.handler=function(n,e){return e===b?w:u(e)?e:63360+e-128}}function q(n){n.fatal;this.handler=function(n,e){return e===b?w:a(e)?e:_(e,63360,63487)?e-63360+128:f(e)}}Object.defineProperty&&(Object.defineProperty(O.prototype,"encoding",{get:function(){return this._encoding.name.toLowerCase()}}),Object.defineProperty(O.prototype,"fatal",{get:function(){return"fatal"===this._error_mode}}),Object.defineProperty(O.prototype,"ignoreBOM",{get:function(){return this._ignoreBOM}})),O.prototype.decode=function(n,e){n="object"==typeof n&&n instanceof ArrayBuffer?new Uint8Array(n):"object"==typeof n&&"buffer"in n&&n.buffer instanceof ArrayBuffer?new Uint8Array(n.buffer,n.byteOffset,n.byteLength):new Uint8Array(0);e=s(e),this._do_not_flush||(this._decoder=g[this._encoding.name]({fatal:"fatal"===this._error_mode}),this._BOMseen=!1),this._do_not_flush=Boolean(e.stream);for(var i,r=new c(n),t=[];;){var o=r.read();if(o===b)break;if((i=this._decoder.handler(r,o))===w)break;null!==i&&(Array.isArray(i)?t.push.apply(t,i):t.push(i))}if(!this._do_not_flush){for(;(i=this._decoder.handler(r,r.read()))!==w&&(null!==i&&(Array.isArray(i)?t.push.apply(t,i):t.push(i)),!r.endOfStream()););this._decoder=null}return function(n){e=["UTF-8","UTF-16LE","UTF-16BE"],i=this._encoding.name,-1===e.indexOf(i)||this._ignoreBOM||this._BOMseen||(0>10),56320+(1023&s)))}return t}.call(this,t)},Object.defineProperty&&Object.defineProperty(k.prototype,"encoding",{get:function(){return this._encoding.name.toLowerCase()}}),k.prototype.encode=function(n,e){n=void 0===n?"":String(n),e=s(e),this._do_not_flush||(this._encoder=h[this._encoding.name]({fatal:"fatal"===this._fatal})),this._do_not_flush=Boolean(e.stream);for(var i,r=new c(function(n){for(var e=String(n),i=e.length,r=0,t=[];rr in e?__defProp(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t,__spreadValues=(e,r)=>{for(var t in r=r||{})__hasOwnProp.call(r,t)&&__defNormalProp(e,t,r[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(r))__propIsEnum.call(r,t)&&__defNormalProp(e,t,r[t]);return e},__spreadProps=(e,r)=>__defProps(e,__getOwnPropDescs(r));function varint64read(){let r=0,t=0;for(let e=0;e<28;e+=7){var a=this.buf[this.pos++];if(r|=(127&a)<>4,0==(128&e))return this.assertBounds(),[r,t];for(let e=3;e<=31;e+=7){var n=this.buf[this.pos++];if(t|=(127&n)<>>e,s=!(n>>>7==0&&0==t);if(a.push(255&(s?128|n:n)),!s)return}var e=r>>>28&15|(7&t)<<4,i=!(t>>3==0);if(a.push(255&(i?128|e:e)),i){for(let e=3;e<31;e+=7){var o=t>>>e,l=!(o>>>7==0);if(a.push(255&(l?128|o:o)),!l)return}a.push(t>>>31&1)}}const TWO_PWR_32_DBL$1=4294967296;function int64fromString(t){var e="-"==t[0];e&&(t=t.slice(1));let a=0,n=0;function r(e,r){e=Number(t.slice(e,r));n*=1e6,(a=1e6*a+e)>=TWO_PWR_32_DBL$1&&(n+=a/TWO_PWR_32_DBL$1|0,a%=TWO_PWR_32_DBL$1)}return r(-24,-18),r(-18,-12),r(-12,-6),r(-6),[e,a,n]}function int64toString(e,r){if(r<=2097151)return""+(TWO_PWR_32_DBL$1*r+e);var t=(e>>>24|r<<8)>>>0&16777215,r=r>>16&65535;let a=(16777215&e)+6777216*t+6710656*r,n=t+8147497*r,s=2*r;e=1e7;function i(e,r){e=e?String(e):"";return r?"0000000".slice(e.length)+e:e}return a>=e&&(n+=Math.floor(a/e),a%=e),n>=e&&(s+=Math.floor(n/e),n%=e),i(s,0)+i(n,s)+i(a,1)}function varint32write(r,t){if(0<=r){for(;127>>=7;t.push(r)}else{for(let e=0;e<9;e++)t.push(127&r|128),r>>=7;t.push(1)}}function varint32read(){let r=this.buf[this.pos++];var e=127&r;if(0==(128&r))return this.assertBounds(),e;if(e|=(127&(r=this.buf[this.pos++]))<<7,0==(128&r))return this.assertBounds(),e;if(e|=(127&(r=this.buf[this.pos++]))<<14,0==(128&r))return this.assertBounds(),e;if(e|=(127&(r=this.buf[this.pos++]))<<21,0==(128&r))return this.assertBounds(),e;e|=(15&(r=this.buf[this.pos++]))<<28;for(let e=5;0!=(128&r)&&e<10;e++)r=this.buf[this.pos++];if(0!=(128&r))throw new Error("invalid varint");return this.assertBounds(),e>>>0}function detectBi(){var e=new DataView(new ArrayBuffer(8));return void 0!==globalThis.BigInt&&"function"==typeof e.getBigInt64&&"function"==typeof e.getBigUint64&&"function"==typeof e.setBigInt64&&"function"==typeof e.setBigUint64?{MIN:BigInt("-9223372036854775808"),MAX:BigInt("9223372036854775807"),UMIN:BigInt("0"),UMAX:BigInt("18446744073709551615"),C:BigInt,V:e}:void 0}const BI=detectBi();function assertBi(e){if(!e)throw new Error("BigInt unavailable, see https://github.com/timostamm/protobuf-ts/blob/v1.0.8/MANUAL.md#bigint-support")}const RE_DECIMAL_STR=/^-?[0-9]+$/,TWO_PWR_32_DBL=4294967296;class SharedPbLong{constructor(e,r){this.lo=0|e,this.hi=0|r}isZero(){return 0==this.lo&&0==this.hi}toNumber(){var e=this.hi*TWO_PWR_32_DBL+(this.lo>>>0);if(Number.isSafeInteger(e))return e;throw new Error("cannot convert to safe number")}}const _PbULong=class extends SharedPbLong{static from(e){if(BI)switch(typeof e){case"string":if("0"==e)return this.ZERO;if(""==e)throw new Error("string is no integer");e=BI.C(e);case"number":if(0===e)return this.ZERO;e=BI.C(e);case"bigint":if(!e)return this.ZERO;if(eBI.UMAX)throw new Error("ulong too large");return BI.V.setBigUint64(0,e,!0),new _PbULong(BI.V.getInt32(0,!0),BI.V.getInt32(4,!0))}else switch(typeof e){case"string":if("0"==e)return this.ZERO;if(e=e.trim(),!RE_DECIMAL_STR.test(e))throw new Error("string is no integer");var[r,t,a]=int64fromString(e);if(r)throw new Error("signed value");return new _PbULong(t,a);case"number":if(0==e)return this.ZERO;if(!Number.isSafeInteger(e))throw new Error("number is no integer");if(e<0)throw new Error("signed value for ulong");return new _PbULong(e,e/TWO_PWR_32_DBL)}throw new Error("unknown value "+typeof e)}toString(){return BI?this.toBigInt().toString():int64toString(this.lo,this.hi)}toBigInt(){return assertBi(BI),BI.V.setInt32(0,this.lo,!0),BI.V.setInt32(4,this.hi,!0),BI.V.getBigUint64(0,!0)}};let PbULong=_PbULong;PbULong.ZERO=new _PbULong(0,0);const _PbLong=class extends SharedPbLong{static from(e){if(BI)switch(typeof e){case"string":if("0"==e)return this.ZERO;if(""==e)throw new Error("string is no integer");e=BI.C(e);case"number":if(0===e)return this.ZERO;e=BI.C(e);case"bigint":if(!e)return this.ZERO;if(eBI.MAX)throw new Error("ulong too large");return BI.V.setBigInt64(0,e,!0),new _PbLong(BI.V.getInt32(0,!0),BI.V.getInt32(4,!0))}else switch(typeof e){case"string":if("0"==e)return this.ZERO;var r,t,a;if(e=e.trim(),RE_DECIMAL_STR.test(e))return[r,a,t]=int64fromString(e),a=new _PbLong(a,t),r?a.negate():a;throw new Error("string is no integer");case"number":if(0==e)return this.ZERO;if(Number.isSafeInteger(e))return 0>>3,e=7&e;if(r<=0||e<0||5this.len)throw new RangeError("premature EOF")}int32(){return 0|this.uint32()}sint32(){var e=this.uint32();return e>>>1^-(1&e)}int64(){return new PbLong(...this.varint64())}uint64(){return new PbULong(...this.varint64())}sint64(){var[e,r]=this.varint64(),t=-(1&e),e=(e>>>1|(1&r)<<31)^t,r=r>>>1^t;return new PbLong(e,r)}bool(){var[e,r]=this.varint64();return 0!==e||0!==r}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return new PbULong(this.sfixed32(),this.sfixed32())}sfixed64(){return new PbLong(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){var e=this.uint32(),r=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(r,r+e)}string(){return this.textDecoder.decode(this.bytes())}}function assert(e,r){if(!e)throw new Error(r)}const FLOAT32_MAX=34028234663852886e22,FLOAT32_MIN=-34028234663852886e22,UINT32_MAX=4294967295,INT32_MAX=2147483647,INT32_MIN=-2147483648;function assertInt32(e){if("number"!=typeof e)throw new Error("invalid int 32: "+typeof e);if(!Number.isInteger(e)||e>INT32_MAX||eUINT32_MAX||e<0)throw new Error("invalid uint 32: "+e)}function assertFloat32(e){if("number"!=typeof e)throw new Error("invalid float 32: "+typeof e);if(Number.isFinite(e)&&(e>FLOAT32_MAX||e>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(assertUInt32(e);127>>=7;return this.buf.push(e),this}int32(e){return assertInt32(e),varint32write(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){e=this.textEncoder.encode(e);return this.uint32(e.byteLength),this.raw(e)}float(e){assertFloat32(e);var r=new Uint8Array(4);return new DataView(r.buffer).setFloat32(0,e,!0),this.raw(r)}double(e){var r=new Uint8Array(8);return new DataView(r.buffer).setFloat64(0,e,!0),this.raw(r)}fixed32(e){assertUInt32(e);var r=new Uint8Array(4);return new DataView(r.buffer).setUint32(0,e,!0),this.raw(r)}sfixed32(e){assertInt32(e);var r=new Uint8Array(4);return new DataView(r.buffer).setInt32(0,e,!0),this.raw(r)}sint32(e){return assertInt32(e),varint32write(e=(e<<1^e>>31)>>>0,this.buf),this}sfixed64(e){var r=new Uint8Array(8),t=new DataView(r.buffer),e=PbLong.from(e);return t.setInt32(0,e.lo,!0),t.setInt32(4,e.hi,!0),this.raw(r)}fixed64(e){var r=new Uint8Array(8),t=new DataView(r.buffer),e=PbULong.from(e);return t.setInt32(0,e.lo,!0),t.setInt32(4,e.hi,!0),this.raw(r)}int64(e){e=PbLong.from(e);return varint64write(e.lo,e.hi,this.buf),this}sint64(e){var e=PbLong.from(e),r=e.hi>>31;return varint64write(e.lo<<1^r,(e.hi<<1|e.lo>>>31)^r,this.buf),this}uint64(e){e=PbULong.from(e);return varint64write(e.lo,e.hi,this.buf),this}}function binaryWriteOptions(e){return e?__spreadValues(__spreadValues({},defaultsWrite$1),e):defaultsWrite$1}function binaryReadOptions(e){return e?__spreadValues(__spreadValues({},defaultsRead$1),e):defaultsRead$1}!function(i){i.symbol=Symbol.for("protobuf-ts/unknown"),i.onRead=(e,r,t,a,n)=>{(s(r)?r[i.symbol]:r[i.symbol]=[]).push({no:t,wireType:a,data:n})},i.onWrite=(e,r,t)=>{for(var{no:a,wireType:n,data:s}of i.list(r))t.tag(a,n).raw(s)},i.list=(e,r)=>s(e)?(e=e[i.symbol],r?e.filter((e=>e.no==r)):e):[],i.last=(e,r)=>i.list(e,r).slice(-1)[0];const s=e=>e&&Array.isArray(e[i.symbol])}(UnknownFieldHandler=UnknownFieldHandler||{});const defaultsRead$1={readUnknownField:!0,readerFactory:e=>new BinaryReader(e)},defaultsWrite$1={writeUnknownFields:!0,writerFactory:()=>new BinaryWriter},MESSAGE_TYPE=(!function(e){e[e.Varint=0]="Varint",e[e.Bit64=1]="Bit64",e[e.LengthDelimited=2]="LengthDelimited",e[e.StartGroup=3]="StartGroup",e[e.EndGroup=4]="EndGroup",e[e.Bit32=5]="Bit32"}(WireType=WireType||{}),Symbol.for("protobuf-ts/message-type"));function lowerCamelCase(r){let t=!1;var a=[];for(let e=0;e!r.includes(e))))return!1;if(!n&&r.some((e=>!t.known.includes(e))))return!1;if(!(a<1)){for(const i of t.oneofs){const o=e[i];if(!isOneofGroup(o))return!1;if(void 0!==o.oneofKind){var s=this.fields.find((e=>e.localName===o.oneofKind));if(!s)return!1;if(!this.field(o[o.oneofKind],s,n,a))return!1}}for(const l of this.fields)if(void 0===l.oneof&&!this.field(e[l.localName],l,n,a))return!1}}return!0}field(e,r,t,a){var n=r.repeat;switch(r.kind){case"scalar":return void 0===e?r.opt:n?this.scalars(e,r.T,a,r.L):this.scalar(e,r.T,r.L);case"enum":return void 0===e?r.opt:n?this.scalars(e,ScalarType.INT32,a):this.scalar(e,ScalarType.INT32);case"message":return void 0===e?!0:n?this.messages(e,r.T(),t,a):this.message(e,r.T(),t,a);case"map":if("object"!=typeof e||null===e)return!1;if(a<2)return!0;if(!this.mapKeys(e,r.K,a))return!1;switch(r.V.kind){case"scalar":return this.scalars(Object.values(e),r.V.T,a,r.V.L);case"enum":return this.scalars(Object.values(e),ScalarType.INT32,a);case"message":return this.messages(Object.values(e),r.V.T(),t,a)}}return!0}message(e,r,t,a){return t?r.isAssignable(e,a):r.is(e,a)}messages(r,t,e,a){if(!Array.isArray(r))return!1;if(!(a<2))if(e){for(let e=0;eparseInt(e))),r,t);case ScalarType.BOOL:return this.scalars(a.slice(0,t).map((e=>"true"==e||"false"!=e&&e)),r,t);default:return this.scalars(a,r,t,LongType.STRING)}}}function typeofJsonValue(e){var r=typeof e;if("object"==r){if(Array.isArray(e))return"array";if(null===e)return"null"}return r}function isJsonObject(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}let encTable="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),decTable=[];for(let e=0;e>4,i=s,n=2;break;case 2:t[a++]=(15&i)<<4|(60&s)>>2,i=s,n=3;break;case 3:t[a++]=(3&i)<<6|s,n=0}}if(1==n)throw Error("invalid base64 string.");return t.subarray(0,a)}function base64encode(r){let t="",a=0,n,s=0;for(let e=0;e>2],s=(3&n)<<4,a=1;break;case 1:t+=encTable[s|n>>4],s=(15&n)<<2,a=2;break;case 2:t=(t+=encTable[s|n>>6])+encTable[63&n],a=0}return a&&(t=t+encTable[s]+"=",1==a&&(t+="=")),t}function reflectionLongConvert(e,r){switch(r){case LongType.BIGINT:return e.toBigInt();case LongType.NUMBER:return e.toNumber();default:return e.toString()}}decTable["-".charCodeAt(0)]=encTable.indexOf("+"),decTable["_".charCodeAt(0)]=encTable.indexOf("/");class ReflectionJsonReader{constructor(e){this.info=e}prepare(){var e;if(void 0===this.fMap){this.fMap={};for(const r of null!=(e=this.info.fields)?e:[])this.fMap[r.name]=r,this.fMap[r.jsonName]=r,this.fMap[r.localName]=r}}assert(e,r,t){if(!e){let e=typeofJsonValue(t);throw"number"!=e&&"boolean"!=e||(e=t.toString()),new Error(`Cannot parse JSON ${e} for ${this.info.typeName}#`+r)}}read(e,r,t){this.prepare();var a,n,s=[];for([a,n]of Object.entries(e)){var i=this.fMap[a];if(!i){if(t.ignoreUnknownFields)continue;throw new Error(`Found unknown field while reading ${this.info.typeName} from JSON format. JSON key: `+a)}var o=i.localName;let e;if(i.oneof){if(s.includes(i.oneof))throw new Error(`Multiple members of the oneof group "${i.oneof}" of ${this.info.typeName} are present in JSON.`);s.push(i.oneof),e=r[i.oneof]={oneofKind:o}}else e=r;if("map"==i.kind){if(null!==n){this.assert(isJsonObject(n),i.name,n);var l,c,u=e[o];for([l,c]of Object.entries(n)){this.assert(null!==c,i.name+" map value",null);let e;switch(i.V.kind){case"message":e=i.V.T().internalJsonRead(c,t);break;case"enum":if(!1===(e=this.enum(i.V.T(),c,i.name,t.ignoreUnknownFields)))continue;break;case"scalar":e=this.scalar(c,i.V.T,i.V.L,i.name)}this.assert(void 0!==e,i.name+" map value",c);let r=l;i.K==ScalarType.BOOL&&(r="true"==r||"false"!=r&&r),u[r=this.scalar(r,i.K,LongType.STRING,i.name).toString()]=e}}}else if(i.repeat){if(null!==n){this.assert(Array.isArray(n),i.name,n);var f=e[o];for(const p of n){this.assert(null!==p,i.name,null);let e;switch(i.kind){case"message":e=i.T().internalJsonRead(p,t);break;case"enum":if(!1===(e=this.enum(i.T(),p,i.name,t.ignoreUnknownFields)))continue;break;case"scalar":e=this.scalar(p,i.T,i.L,i.name)}this.assert(void 0!==e,i.name,n),f.push(e)}}}else switch(i.kind){case"message":null===n&&"google.protobuf.Value"!=i.T().typeName?this.assert(void 0===i.oneof,i.name+" (oneof member)",null):e[o]=i.T().internalJsonRead(n,t,e[o]);break;case"enum":var h=this.enum(i.T(),n,i.name,t.ignoreUnknownFields);!1!==h&&(e[o]=h);break;case"scalar":e[o]=this.scalar(n,i.T,i.L,i.name)}}}enum(r,t,a,n){if("google.protobuf.NullValue"==r[0]&&assert(null===t,`Unable to parse field ${this.info.typeName}#${a}, enum ${r[0]} only accepts null.`),null===t)return 0;switch(typeof t){case"number":return assert(Number.isInteger(t),`Unable to parse field ${this.info.typeName}#${a}, enum can only be integral number, got ${t}.`),t;case"string":let e=t;r[2]&&t.substring(0,r[2].length)===r[2]&&(e=t.substring(r[2].length));var s=r[1][e];return void 0===s&&n?!1:(assert("number"==typeof s,`Unable to parse field ${this.info.typeName}#${a}, enum ${r[0]} has no value for "${t}".`),s)}assert(!1,`Unable to parse field ${this.info.typeName}#${a}, cannot parse enum value from ${typeof t}".`)}scalar(r,t,a,e){let n;try{switch(t){case ScalarType.DOUBLE:case ScalarType.FLOAT:if(null===r)return 0;if("NaN"===r)return Number.NaN;if("Infinity"===r)return Number.POSITIVE_INFINITY;if("-Infinity"===r)return Number.NEGATIVE_INFINITY;if(""===r)n="empty string";else if("string"==typeof r&&r.trim().length!==r.length)n="extra whitespace";else if("string"==typeof r||"number"==typeof r){var s=Number(r);if(Number.isNaN(s))n="not a number";else{if(Number.isFinite(s))return t==ScalarType.FLOAT&&assertFloat32(s),s;n="too large or small"}}break;case ScalarType.INT32:case ScalarType.FIXED32:case ScalarType.SFIXED32:case ScalarType.SINT32:case ScalarType.UINT32:if(null===r)return 0;let e;if("number"==typeof r?e=r:""===r?n="empty string":"string"==typeof r&&(r.trim().length!==r.length?n="extra whitespace":e=Number(r)),void 0===e)break;return(t==ScalarType.UINT32?assertUInt32:assertInt32)(e),e;case ScalarType.INT64:case ScalarType.SFIXED64:case ScalarType.SINT64:if(null===r)return reflectionLongConvert(PbLong.ZERO,a);if("number"!=typeof r&&"string"!=typeof r)break;return reflectionLongConvert(PbLong.from(r),a);case ScalarType.FIXED64:case ScalarType.UINT64:if(null===r)return reflectionLongConvert(PbULong.ZERO,a);if("number"!=typeof r&&"string"!=typeof r)break;return reflectionLongConvert(PbULong.from(r),a);case ScalarType.BOOL:if(null===r)return!1;if("boolean"!=typeof r)break;return r;case ScalarType.STRING:if(null===r)return"";if("string"!=typeof r){n="extra whitespace";break}try{encodeURIComponent(r)}catch(e){0;break}return r;case ScalarType.BYTES:if(null===r||""===r)return new Uint8Array(0);if("string"!=typeof r)break;return base64decode(r)}}catch(e){n=e.message}this.assert(!1,e+(n?" - "+n:""),r)}}class ReflectionJsonWriter{constructor(e){this.fields=null!=(e=e.fields)?e:[]}write(e,r){var t,a,n={},s=e;for(const i of this.fields)i.oneof?(t=s[i.oneof]).oneofKind===i.localName&&(a="scalar"==i.kind||"enum"==i.kind?__spreadProps(__spreadValues({},r),{emitDefaultValues:!0}):r,assert(void 0!==(t=this.field(i,t[i.localName],a))),n[r.useProtoFieldName?i.name:i.jsonName]=t):void 0!==(a=this.field(i,s[i.localName],r))&&(n[r.useProtoFieldName?i.name:i.jsonName]=a);return n}field(r,t,a){let e=void 0;if("map"==r.kind){assert("object"==typeof t&&null!==t);var n={};switch(r.V.kind){case"scalar":for(var[s,i]of Object.entries(t)){i=this.scalar(r.V.T,i,r.name,!1,!0);assert(void 0!==i),n[s.toString()]=i}break;case"message":var o,l,c=r.V.T();for([o,l]of Object.entries(t)){var u=this.message(c,l,r.name,a);assert(void 0!==u),n[o.toString()]=u}break;case"enum":var f,h,p=r.V.T();for([f,h]of Object.entries(t)){assert(void 0===h||"number"==typeof h);var d=this.enum(p,h,r.name,!1,!0,a.enumAsInteger);assert(void 0!==d),n[f.toString()]=d}}(a.emitDefaultValues||0[e.no,e]))))}read(a,n,s,e){this.prepare();for(var r=void 0===e?a.len:a.pos+e;a.pose.no-r.no)))}write(n,s,i){this.prepare();for(const f of this.fields){let e,r,t=f.repeat,a=f.localName;if(f.oneof){var o=n[f.oneof];if(o.oneofKind!==a)continue;e=o[a],r=!0}else e=n[a],r=!1;switch(f.kind){case"scalar":case"enum":var l="enum"==f.kind?ScalarType.INT32:f.T;if(t)if(assert(Array.isArray(e)),t==RepeatType.PACKED)this.packed(s,l,f.no,e);else for(const h of e)this.scalar(s,l,f.no,h,!0);else void 0===e?assert(f.opt):this.scalar(s,l,f.no,e,r||f.opt);break;case"message":if(t){assert(Array.isArray(e));for(const p of e)this.message(s,i,f.T(),f.no,p)}else this.message(s,i,f.T(),f.no,e);break;case"map":assert("object"==typeof e&&null!==e);for(var[c,u]of Object.entries(e))this.mapEntry(s,i,f,c,u)}}var e=i.writeUnknownFields;!1!==e&&(!0===e?UnknownFieldHandler.onWrite:e)(this.info.typeName,n,s)}mapEntry(e,r,t,a,n){e.tag(t.no,WireType.LengthDelimited),e.fork();let s=a;switch(t.K){case ScalarType.INT32:case ScalarType.FIXED32:case ScalarType.UINT32:case ScalarType.SFIXED32:case ScalarType.SINT32:s=Number.parseInt(a);break;case ScalarType.BOOL:assert("true"==a||"false"==a),s="true"==a}switch(this.scalar(e,t.K,1,s,!0),t.V.kind){case"scalar":this.scalar(e,t.V.T,2,n,!0);break;case"enum":this.scalar(e,ScalarType.INT32,2,n,!0);break;case"message":this.message(e,r,t.V.T(),2,n)}e.join()}message(e,r,t,a,n){void 0!==n&&(t.internalBinaryWrite(n,e.tag(a,WireType.LengthDelimited).fork(),r),e.join())}scalar(e,r,t,a,n){var[r,s,i]=this.scalarInfo(r,a);i&&!n||(e.tag(t,r),e[s](a))}packed(r,e,t,a){if(a.length){assert(e!==ScalarType.BYTES&&e!==ScalarType.STRING),r.tag(t,WireType.LengthDelimited),r.fork();var[,n]=this.scalarInfo(e);for(let e=0;e=0;)t[e]=0}const a=256,i=286,n=30,s=15,r=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),l=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),o=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),h=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),d=new Array(576);e(d);const _=new Array(60);e(_);const f=new Array(512);e(f);const c=new Array(256);e(c);const u=new Array(29);e(u);const w=new Array(n);function b(t,e,a,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=a,this.elems=i,this.max_length=n,this.has_stree=t&&t.length}let g,p,m;function k(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}e(w);const v=t=>t<256?f[t]:f[256+(t>>>7)],y=(t,e)=>{t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},x=(t,e,a)=>{t.bi_valid>16-a?(t.bi_buf|=e<>16-t.bi_valid,t.bi_valid+=a-16):(t.bi_buf|=e<{x(t,a[2*e],a[2*e+1])},A=(t,e)=>{let a=0;do{a|=1&t,t>>>=1,a<<=1}while(--e>0);return a>>>1},E=(t,e,a)=>{const i=new Array(16);let n,r,l=0;for(n=1;n<=s;n++)i[n]=l=l+a[n-1]<<1;for(r=0;r<=e;r++){let e=t[2*r+1];0!==e&&(t[2*r]=A(i[e]++,e))}},R=t=>{let e;for(e=0;e{t.bi_valid>8?y(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},U=(t,e,a,i)=>{const n=2*e,s=2*a;return t[n]{const i=t.heap[a];let n=a<<1;for(;n<=t.heap_len&&(n{let n,s,o,h,d=0;if(0!==t.last_lit)do{n=t.pending_buf[t.d_buf+2*d]<<8|t.pending_buf[t.d_buf+2*d+1],s=t.pending_buf[t.l_buf+d],d++,0===n?z(t,s,e):(o=c[s],z(t,o+a+1,e),h=r[o],0!==h&&(s-=u[o],x(t,s,h)),n--,o=v(n),z(t,o,i),h=l[o],0!==h&&(n-=w[o],x(t,n,h)))}while(d{const a=e.dyn_tree,i=e.stat_desc.static_tree,n=e.stat_desc.has_stree,r=e.stat_desc.elems;let l,o,h,d=-1;for(t.heap_len=0,t.heap_max=573,l=0;l>1;l>=1;l--)S(t,a,l);h=r;do{l=t.heap[1],t.heap[1]=t.heap[t.heap_len--],S(t,a,1),o=t.heap[1],t.heap[--t.heap_max]=l,t.heap[--t.heap_max]=o,a[2*h]=a[2*l]+a[2*o],t.depth[h]=(t.depth[l]>=t.depth[o]?t.depth[l]:t.depth[o])+1,a[2*l+1]=a[2*o+1]=h,t.heap[1]=h++,S(t,a,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((t,e)=>{const a=e.dyn_tree,i=e.max_code,n=e.stat_desc.static_tree,r=e.stat_desc.has_stree,l=e.stat_desc.extra_bits,o=e.stat_desc.extra_base,h=e.stat_desc.max_length;let d,_,f,c,u,w,b=0;for(c=0;c<=s;c++)t.bl_count[c]=0;for(a[2*t.heap[t.heap_max]+1]=0,d=t.heap_max+1;d<573;d++)_=t.heap[d],c=a[2*a[2*_+1]+1]+1,c>h&&(c=h,b++),a[2*_+1]=c,_>i||(t.bl_count[c]++,u=0,_>=o&&(u=l[_-o]),w=a[2*_],t.opt_len+=w*(c+u),r&&(t.static_len+=w*(n[2*_+1]+u)));if(0!==b){do{for(c=h-1;0===t.bl_count[c];)c--;t.bl_count[c]--,t.bl_count[c+1]+=2,t.bl_count[h]--,b-=2}while(b>0);for(c=h;0!==c;c--)for(_=t.bl_count[c];0!==_;)f=t.heap[--d],f>i||(a[2*f+1]!==c&&(t.opt_len+=(c-a[2*f+1])*a[2*f],a[2*f+1]=c),_--)}})(t,e),E(a,d,t.bl_count)},O=(t,e,a)=>{let i,n,s=-1,r=e[1],l=0,o=7,h=4;for(0===r&&(o=138,h=3),e[2*(a+1)+1]=65535,i=0;i<=a;i++)n=r,r=e[2*(i+1)+1],++l{let i,n,s=-1,r=e[1],l=0,o=7,h=4;for(0===r&&(o=138,h=3),i=0;i<=a;i++)if(n=r,r=e[2*(i+1)+1],!(++l{x(t,0+(i?1:0),3),((t,e,a,i)=>{Z(t),i&&(y(t,a),y(t,~a)),t.pending_buf.set(t.window.subarray(e,e+a),t.pending),t.pending+=a})(t,e,a,!0)};var N={_tr_init:t=>{F||((()=>{let t,e,a,h,k;const v=new Array(16);for(a=0,h=0;h<28;h++)for(u[h]=a,t=0;t<1<>=7;h{let s,r,l=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=(t=>{let e,i=4093624447;for(e=0;e<=31;e++,i>>>=1)if(1&i&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e{let e;for(O(t,t.dyn_ltree,t.l_desc.max_code),O(t,t.dyn_dtree,t.d_desc.max_code),T(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*h[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e})(t),s=t.opt_len+3+7>>>3,r=t.static_len+3+7>>>3,r<=s&&(s=r)):s=r=i+5,i+4<=s&&-1!==e?L(t,e,i,n):4===t.strategy||r===s?(x(t,2+(n?1:0),3),D(t,d,_)):(x(t,4+(n?1:0),3),((t,e,a,i)=>{let n;for(x(t,e-257,5),x(t,a-1,5),x(t,i-4,4),n=0;n(t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&i,t.last_lit++,0===e?t.dyn_ltree[2*i]++:(t.matches++,e--,t.dyn_ltree[2*(c[i]+a+1)]++,t.dyn_dtree[2*v(e)]++),t.last_lit===t.lit_bufsize-1),_tr_align:t=>{x(t,2,3),z(t,256,d),(t=>{16===t.bi_valid?(y(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)})(t)}};var B=(t,e,a,i)=>{let n=65535&t|0,s=t>>>16&65535|0,r=0;for(;0!==a;){r=a>2e3?2e3:a,a-=r;do{n=n+e[i++]|0,s=s+n|0}while(--r);n%=65521,s%=65521}return n|s<<16|0};const C=new Uint32Array((()=>{let t,e=[];for(var a=0;a<256;a++){t=a;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[a]=t}return e})());var M=(t,e,a,i)=>{const n=C,s=i+a;t^=-1;for(let a=i;a>>8^n[255&(t^e[a])];return-1^t},H={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},j={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:K,_tr_stored_block:P,_tr_flush_block:Y,_tr_tally:G,_tr_align:X}=N,{Z_NO_FLUSH:W,Z_PARTIAL_FLUSH:q,Z_FULL_FLUSH:J,Z_FINISH:Q,Z_BLOCK:V,Z_OK:$,Z_STREAM_END:tt,Z_STREAM_ERROR:et,Z_DATA_ERROR:at,Z_BUF_ERROR:it,Z_DEFAULT_COMPRESSION:nt,Z_FILTERED:st,Z_HUFFMAN_ONLY:rt,Z_RLE:lt,Z_FIXED:ot,Z_DEFAULT_STRATEGY:ht,Z_UNKNOWN:dt,Z_DEFLATED:_t}=j,ft=258,ct=262,ut=103,wt=113,bt=666,gt=(t,e)=>(t.msg=H[e],e),pt=t=>(t<<1)-(t>4?9:0),mt=t=>{let e=t.length;for(;--e>=0;)t[e]=0};let kt=(t,e,a)=>(e<{const e=t.state;let a=e.pending;a>t.avail_out&&(a=t.avail_out),0!==a&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+a),t.next_out),t.next_out+=a,e.pending_out+=a,t.total_out+=a,t.avail_out-=a,e.pending-=a,0===e.pending&&(e.pending_out=0))},yt=(t,e)=>{Y(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,vt(t.strm)},xt=(t,e)=>{t.pending_buf[t.pending++]=e},zt=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e},At=(t,e,a,i)=>{let n=t.avail_in;return n>i&&(n=i),0===n?0:(t.avail_in-=n,e.set(t.input.subarray(t.next_in,t.next_in+n),a),1===t.state.wrap?t.adler=B(t.adler,e,n,a):2===t.state.wrap&&(t.adler=M(t.adler,e,n,a)),t.next_in+=n,t.total_in+=n,n)},Et=(t,e)=>{let a,i,n=t.max_chain_length,s=t.strstart,r=t.prev_length,l=t.nice_match;const o=t.strstart>t.w_size-ct?t.strstart-(t.w_size-ct):0,h=t.window,d=t.w_mask,_=t.prev,f=t.strstart+ft;let c=h[s+r-1],u=h[s+r];t.prev_length>=t.good_match&&(n>>=2),l>t.lookahead&&(l=t.lookahead);do{if(a=e,h[a+r]===u&&h[a+r-1]===c&&h[a]===h[s]&&h[++a]===h[s+1]){s+=2,a++;do{}while(h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&sr){if(t.match_start=e,r=i,i>=l)break;c=h[s+r-1],u=h[s+r]}}}while((e=_[e&d])>o&&0!=--n);return r<=t.lookahead?r:t.lookahead},Rt=t=>{const e=t.w_size;let a,i,n,s,r;do{if(s=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-ct)){t.window.set(t.window.subarray(e,e+e),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,i=t.hash_size,a=i;do{n=t.head[--a],t.head[a]=n>=e?n-e:0}while(--i);i=e,a=i;do{n=t.prev[--a],t.prev[a]=n>=e?n-e:0}while(--i);s+=e}if(0===t.strm.avail_in)break;if(i=At(t.strm,t.window,t.strstart+t.lookahead,s),t.lookahead+=i,t.lookahead+t.insert>=3)for(r=t.strstart-t.insert,t.ins_h=t.window[r],t.ins_h=kt(t,t.ins_h,t.window[r+1]);t.insert&&(t.ins_h=kt(t,t.ins_h,t.window[r+3-1]),t.prev[r&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=r,r++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead{let a,i;for(;;){if(t.lookahead=3&&(t.ins_h=kt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==a&&t.strstart-a<=t.w_size-ct&&(t.match_length=Et(t,a)),t.match_length>=3)if(i=G(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=kt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=kt(t,t.ins_h,t.window[t.strstart+1]);else i=G(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(yt(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,e===Q?(yt(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(yt(t,!1),0===t.strm.avail_out)?1:2},Ut=(t,e)=>{let a,i,n;for(;;){if(t.lookahead=3&&(t.ins_h=kt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==a&&t.prev_length4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){n=t.strstart+t.lookahead-3,i=G(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=n&&(t.ins_h=kt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,i&&(yt(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if(i=G(t,0,t.window[t.strstart-1]),i&&yt(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=G(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===Q?(yt(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(yt(t,!1),0===t.strm.avail_out)?1:2};function St(t,e,a,i,n){this.good_length=t,this.max_lazy=e,this.nice_length=a,this.max_chain=i,this.func=n}const Dt=[new St(0,0,0,0,((t,e)=>{let a=65535;for(a>t.pending_buf_size-5&&(a=t.pending_buf_size-5);;){if(t.lookahead<=1){if(Rt(t),0===t.lookahead&&e===W)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;const i=t.block_start+a;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,yt(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-ct&&(yt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===Q?(yt(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(yt(t,!1),t.strm.avail_out),1)})),new St(4,4,8,4,Zt),new St(4,5,16,8,Zt),new St(4,6,32,32,Zt),new St(4,4,16,16,Ut),new St(8,16,32,32,Ut),new St(8,16,128,128,Ut),new St(8,32,128,256,Ut),new St(32,128,258,1024,Ut),new St(32,258,258,4096,Ut)];function Tt(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=_t,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),mt(this.dyn_ltree),mt(this.dyn_dtree),mt(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),mt(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),mt(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Ot=t=>{if(!t||!t.state)return gt(t,et);t.total_in=t.total_out=0,t.data_type=dt;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?42:wt,t.adler=2===e.wrap?0:1,e.last_flush=W,K(e),$},It=t=>{const e=Ot(t);var a;return e===$&&((a=t.state).window_size=2*a.w_size,mt(a.head),a.max_lazy_match=Dt[a.level].max_lazy,a.good_match=Dt[a.level].good_length,a.nice_match=Dt[a.level].nice_length,a.max_chain_length=Dt[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=2,a.match_available=0,a.ins_h=0),e},Ft=(t,e,a,i,n,s)=>{if(!t)return et;let r=1;if(e===nt&&(e=6),i<0?(r=0,i=-i):i>15&&(r=2,i-=16),n<1||n>9||a!==_t||i<8||i>15||e<0||e>9||s<0||s>ot)return gt(t,et);8===i&&(i=9);const l=new Tt;return t.state=l,l.strm=t,l.wrap=r,l.gzhead=null,l.w_bits=i,l.w_size=1<Ft(t,e,_t,15,8,ht),deflateInit2:Ft,deflateReset:It,deflateResetKeep:Ot,deflateSetHeader:(t,e)=>t&&t.state?2!==t.state.wrap?et:(t.state.gzhead=e,$):et,deflate:(t,e)=>{let a,i;if(!t||!t.state||e>V||e<0)return t?gt(t,et):et;const n=t.state;if(!t.output||!t.input&&0!==t.avail_in||n.status===bt&&e!==Q)return gt(t,0===t.avail_out?it:et);n.strm=t;const s=n.last_flush;if(n.last_flush=e,42===n.status)if(2===n.wrap)t.adler=0,xt(n,31),xt(n,139),xt(n,8),n.gzhead?(xt(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),xt(n,255&n.gzhead.time),xt(n,n.gzhead.time>>8&255),xt(n,n.gzhead.time>>16&255),xt(n,n.gzhead.time>>24&255),xt(n,9===n.level?2:n.strategy>=rt||n.level<2?4:0),xt(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(xt(n,255&n.gzhead.extra.length),xt(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(t.adler=M(t.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(xt(n,0),xt(n,0),xt(n,0),xt(n,0),xt(n,0),xt(n,9===n.level?2:n.strategy>=rt||n.level<2?4:0),xt(n,3),n.status=wt);else{let e=_t+(n.w_bits-8<<4)<<8,a=-1;a=n.strategy>=rt||n.level<2?0:n.level<6?1:6===n.level?2:3,e|=a<<6,0!==n.strstart&&(e|=32),e+=31-e%31,n.status=wt,zt(n,e),0!==n.strstart&&(zt(n,t.adler>>>16),zt(n,65535&t.adler)),t.adler=1}if(69===n.status)if(n.gzhead.extra){for(a=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>a&&(t.adler=M(t.adler,n.pending_buf,n.pending-a,a)),vt(t),a=n.pending,n.pending!==n.pending_buf_size));)xt(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>a&&(t.adler=M(t.adler,n.pending_buf,n.pending-a,a)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){a=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>a&&(t.adler=M(t.adler,n.pending_buf,n.pending-a,a)),vt(t),a=n.pending,n.pending===n.pending_buf_size)){i=1;break}i=n.gzindexa&&(t.adler=M(t.adler,n.pending_buf,n.pending-a,a)),0===i&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){a=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>a&&(t.adler=M(t.adler,n.pending_buf,n.pending-a,a)),vt(t),a=n.pending,n.pending===n.pending_buf_size)){i=1;break}i=n.gzindexa&&(t.adler=M(t.adler,n.pending_buf,n.pending-a,a)),0===i&&(n.status=ut)}else n.status=ut;if(n.status===ut&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&vt(t),n.pending+2<=n.pending_buf_size&&(xt(n,255&t.adler),xt(n,t.adler>>8&255),t.adler=0,n.status=wt)):n.status=wt),0!==n.pending){if(vt(t),0===t.avail_out)return n.last_flush=-1,$}else if(0===t.avail_in&&pt(e)<=pt(s)&&e!==Q)return gt(t,it);if(n.status===bt&&0!==t.avail_in)return gt(t,it);if(0!==t.avail_in||0!==n.lookahead||e!==W&&n.status!==bt){let a=n.strategy===rt?((t,e)=>{let a;for(;;){if(0===t.lookahead&&(Rt(t),0===t.lookahead)){if(e===W)return 1;break}if(t.match_length=0,a=G(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,a&&(yt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===Q?(yt(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(yt(t,!1),0===t.strm.avail_out)?1:2})(n,e):n.strategy===lt?((t,e)=>{let a,i,n,s;const r=t.window;for(;;){if(t.lookahead<=ft){if(Rt(t),t.lookahead<=ft&&e===W)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(n=t.strstart-1,i=r[n],i===r[++n]&&i===r[++n]&&i===r[++n])){s=t.strstart+ft;do{}while(i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&nt.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(a=G(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(a=G(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),a&&(yt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===Q?(yt(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(yt(t,!1),0===t.strm.avail_out)?1:2})(n,e):Dt[n.level].func(n,e);if(3!==a&&4!==a||(n.status=bt),1===a||3===a)return 0===t.avail_out&&(n.last_flush=-1),$;if(2===a&&(e===q?X(n):e!==V&&(P(n,0,0,!1),e===J&&(mt(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),vt(t),0===t.avail_out))return n.last_flush=-1,$}return e!==Q?$:n.wrap<=0?tt:(2===n.wrap?(xt(n,255&t.adler),xt(n,t.adler>>8&255),xt(n,t.adler>>16&255),xt(n,t.adler>>24&255),xt(n,255&t.total_in),xt(n,t.total_in>>8&255),xt(n,t.total_in>>16&255),xt(n,t.total_in>>24&255)):(zt(n,t.adler>>>16),zt(n,65535&t.adler)),vt(t),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?$:tt)},deflateEnd:t=>{if(!t||!t.state)return et;const e=t.state.status;return 42!==e&&69!==e&&73!==e&&91!==e&&e!==ut&&e!==wt&&e!==bt?gt(t,et):(t.state=null,e===wt?gt(t,at):$)},deflateSetDictionary:(t,e)=>{let a=e.length;if(!t||!t.state)return et;const i=t.state,n=i.wrap;if(2===n||1===n&&42!==i.status||i.lookahead)return et;if(1===n&&(t.adler=B(t.adler,e,a,0)),i.wrap=0,a>=i.w_size){0===n&&(mt(i.head),i.strstart=0,i.block_start=0,i.insert=0);let t=new Uint8Array(i.w_size);t.set(e.subarray(a-i.w_size,a),0),e=t,a=i.w_size}const s=t.avail_in,r=t.next_in,l=t.input;for(t.avail_in=a,t.next_in=0,t.input=e,Rt(i);i.lookahead>=3;){let t=i.strstart,e=i.lookahead-2;do{i.ins_h=kt(i,i.ins_h,i.window[t+3-1]),i.prev[t&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=t,t++}while(--e);i.strstart=t,i.lookahead=2,Rt(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,t.next_in=r,t.input=l,t.avail_in=s,i.wrap=n,$},deflateInfo:"pako deflate (from Nodeca project)"};const Nt=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var Bt=function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const a=e.shift();if(a){if("object"!=typeof a)throw new TypeError(a+"must be non-object");for(const e in a)Nt(a,e)&&(t[e]=a[e])}}return t},Ct=t=>{let e=0;for(let a=0,i=t.length;a=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;Ht[254]=Ht[254]=1;var jt=t=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(t);let e,a,i,n,s,r=t.length,l=0;for(n=0;n>>6,e[s++]=128|63&a):a<65536?(e[s++]=224|a>>>12,e[s++]=128|a>>>6&63,e[s++]=128|63&a):(e[s++]=240|a>>>18,e[s++]=128|a>>>12&63,e[s++]=128|a>>>6&63,e[s++]=128|63&a);return e},Kt=(t,e)=>{const a=e||t.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(t.subarray(0,e));let i,n;const s=new Array(2*a);for(n=0,i=0;i4)s[n++]=65533,i+=r-1;else{for(e&=2===r?31:3===r?15:7;r>1&&i1?s[n++]=65533:e<65536?s[n++]=e:(e-=65536,s[n++]=55296|e>>10&1023,s[n++]=56320|1023&e)}}return((t,e)=>{if(e<65534&&t.subarray&&Mt)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let a="";for(let i=0;i{(e=e||t.length)>t.length&&(e=t.length);let a=e-1;for(;a>=0&&128==(192&t[a]);)a--;return a<0||0===a?e:a+Ht[t[a]]>e?a:e};var Yt=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Gt=Object.prototype.toString,{Z_NO_FLUSH:Xt,Z_SYNC_FLUSH:Wt,Z_FULL_FLUSH:qt,Z_FINISH:Jt,Z_OK:Qt,Z_STREAM_END:Vt,Z_DEFAULT_COMPRESSION:$t,Z_DEFAULT_STRATEGY:te,Z_DEFLATED:ee}=j;function ae(t){this.options=Bt({level:$t,method:ee,chunkSize:16384,windowBits:15,memLevel:8,strategy:te},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Yt,this.strm.avail_out=0;let a=Lt.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(a!==Qt)throw new Error(H[a]);if(e.header&&Lt.deflateSetHeader(this.strm,e.header),e.dictionary){let t;if(t="string"==typeof e.dictionary?jt(e.dictionary):"[object ArrayBuffer]"===Gt.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,a=Lt.deflateSetDictionary(this.strm,t),a!==Qt)throw new Error(H[a]);this._dict_set=!0}}function ie(t,e){const a=new ae(e);if(a.push(t,!0),a.err)throw a.msg||H[a.err];return a.result}ae.prototype.push=function(t,e){const a=this.strm,i=this.options.chunkSize;let n,s;if(this.ended)return!1;for(s=e===~~e?e:!0===e?Jt:Xt,"string"==typeof t?a.input=jt(t):"[object ArrayBuffer]"===Gt.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;)if(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),(s===Wt||s===qt)&&a.avail_out<=6)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else{if(n=Lt.deflate(a,s),n===Vt)return a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),n=Lt.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===Qt;if(0!==a.avail_out){if(s>0&&a.next_out>0)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else if(0===a.avail_in)break}else this.onData(a.output)}return!0},ae.prototype.onData=function(t){this.chunks.push(t)},ae.prototype.onEnd=function(t){t===Qt&&(this.result=Ct(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var ne={Deflate:ae,deflate:ie,deflateRaw:function(t,e){return(e=e||{}).raw=!0,ie(t,e)},gzip:function(t,e){return(e=e||{}).gzip=!0,ie(t,e)},constants:j};var se=function(t,e){let a,i,n,s,r,l,o,h,d,_,f,c,u,w,b,g,p,m,k,v,y,x,z,A;const E=t.state;a=t.next_in,z=t.input,i=a+(t.avail_in-5),n=t.next_out,A=t.output,s=n-(e-t.avail_out),r=n+(t.avail_out-257),l=E.dmax,o=E.wsize,h=E.whave,d=E.wnext,_=E.window,f=E.hold,c=E.bits,u=E.lencode,w=E.distcode,b=(1<>>24,f>>>=m,c-=m,m=p>>>16&255,0===m)A[n++]=65535&p;else{if(!(16&m)){if(0==(64&m)){p=u[(65535&p)+(f&(1<>>=m,c-=m),c<15&&(f+=z[a++]<>>24,f>>>=m,c-=m,m=p>>>16&255,!(16&m)){if(0==(64&m)){p=w[(65535&p)+(f&(1<l){t.msg="invalid distance too far back",E.mode=30;break t}if(f>>>=m,c-=m,m=n-s,v>m){if(m=v-m,m>h&&E.sane){t.msg="invalid distance too far back",E.mode=30;break t}if(y=0,x=_,0===d){if(y+=o-m,m2;)A[n++]=x[y++],A[n++]=x[y++],A[n++]=x[y++],k-=3;k&&(A[n++]=x[y++],k>1&&(A[n++]=x[y++]))}else{y=n-v;do{A[n++]=A[y++],A[n++]=A[y++],A[n++]=A[y++],k-=3}while(k>2);k&&(A[n++]=A[y++],k>1&&(A[n++]=A[y++]))}break}}break}}while(a>3,a-=k,c-=k<<3,f&=(1<{const o=l.bits;let h,d,_,f,c,u,w=0,b=0,g=0,p=0,m=0,k=0,v=0,y=0,x=0,z=0,A=null,E=0;const R=new Uint16Array(16),Z=new Uint16Array(16);let U,S,D,T=null,O=0;for(w=0;w<=re;w++)R[w]=0;for(b=0;b=1&&0===R[p];p--);if(m>p&&(m=p),0===p)return n[s++]=20971520,n[s++]=20971520,l.bits=1,0;for(g=1;g0&&(0===t||1!==p))return-1;for(Z[1]=0,w=1;w852||2===t&&x>592)return 1;for(;;){U=w-v,r[b]u?(S=T[O+r[b]],D=A[E+r[b]]):(S=96,D=0),h=1<>v)+d]=U<<24|S<<16|D|0}while(0!==d);for(h=1<>=1;if(0!==h?(z&=h-1,z+=h):z=0,b++,0==--R[w]){if(w===p)break;w=e[a+r[b]]}if(w>m&&(z&f)!==_){for(0===v&&(v=m),c+=g,k=w-v,y=1<852||2===t&&x>592)return 1;_=z&f,n[_]=m<<24|k<<16|c-s|0}}return 0!==z&&(n[c+z]=w-v<<24|64<<16|0),l.bits=m,0};const{Z_FINISH:fe,Z_BLOCK:ce,Z_TREES:ue,Z_OK:we,Z_STREAM_END:be,Z_NEED_DICT:ge,Z_STREAM_ERROR:pe,Z_DATA_ERROR:me,Z_MEM_ERROR:ke,Z_BUF_ERROR:ve,Z_DEFLATED:ye}=j,xe=12,ze=30,Ae=t=>(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);function Ee(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Re=t=>{if(!t||!t.state)return pe;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,we},Ze=t=>{if(!t||!t.state)return pe;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,Re(t)},Ue=(t,e)=>{let a;if(!t||!t.state)return pe;const i=t.state;return e<0?(a=0,e=-e):(a=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?pe:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=a,i.wbits=e,Ze(t))},Se=(t,e)=>{if(!t)return pe;const a=new Ee;t.state=a,a.window=null;const i=Ue(t,e);return i!==we&&(t.state=null),i};let De,Te,Oe=!0;const Ie=t=>{if(Oe){De=new Int32Array(512),Te=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(_e(1,t.lens,0,288,De,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;_e(2,t.lens,0,32,Te,0,t.work,{bits:5}),Oe=!1}t.lencode=De,t.lenbits=9,t.distcode=Te,t.distbits=5},Fe=(t,e,a,i)=>{let n;const s=t.state;return null===s.window&&(s.wsize=1<=s.wsize?(s.window.set(e.subarray(a-s.wsize,a),0),s.wnext=0,s.whave=s.wsize):(n=s.wsize-s.wnext,n>i&&(n=i),s.window.set(e.subarray(a-i,a-i+n),s.wnext),(i-=n)?(s.window.set(e.subarray(a-i,a),0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whaveSe(t,15),inflateInit2:Se,inflate:(t,e)=>{let a,i,n,s,r,l,o,h,d,_,f,c,u,w,b,g,p,m,k,v,y,x,z=0;const A=new Uint8Array(4);let E,R;const Z=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return pe;a=t.state,a.mode===xe&&(a.mode=13),r=t.next_out,n=t.output,o=t.avail_out,s=t.next_in,i=t.input,l=t.avail_in,h=a.hold,d=a.bits,_=l,f=o,x=we;t:for(;;)switch(a.mode){case 1:if(0===a.wrap){a.mode=13;break}for(;d<16;){if(0===l)break t;l--,h+=i[s++]<>>8&255,a.check=M(a.check,A,2,0),h=0,d=0,a.mode=2;break}if(a.flags=0,a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",a.mode=ze;break}if((15&h)!==ye){t.msg="unknown compression method",a.mode=ze;break}if(h>>>=4,d-=4,y=8+(15&h),0===a.wbits)a.wbits=y;else if(y>a.wbits){t.msg="invalid window size",a.mode=ze;break}a.dmax=1<>8&1),512&a.flags&&(A[0]=255&h,A[1]=h>>>8&255,a.check=M(a.check,A,2,0)),h=0,d=0,a.mode=3;case 3:for(;d<32;){if(0===l)break t;l--,h+=i[s++]<>>8&255,A[2]=h>>>16&255,A[3]=h>>>24&255,a.check=M(a.check,A,4,0)),h=0,d=0,a.mode=4;case 4:for(;d<16;){if(0===l)break t;l--,h+=i[s++]<>8),512&a.flags&&(A[0]=255&h,A[1]=h>>>8&255,a.check=M(a.check,A,2,0)),h=0,d=0,a.mode=5;case 5:if(1024&a.flags){for(;d<16;){if(0===l)break t;l--,h+=i[s++]<>>8&255,a.check=M(a.check,A,2,0)),h=0,d=0}else a.head&&(a.head.extra=null);a.mode=6;case 6:if(1024&a.flags&&(c=a.length,c>l&&(c=l),c&&(a.head&&(y=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Uint8Array(a.head.extra_len)),a.head.extra.set(i.subarray(s,s+c),y)),512&a.flags&&(a.check=M(a.check,i,c,s)),l-=c,s+=c,a.length-=c),a.length))break t;a.length=0,a.mode=7;case 7:if(2048&a.flags){if(0===l)break t;c=0;do{y=i[s+c++],a.head&&y&&a.length<65536&&(a.head.name+=String.fromCharCode(y))}while(y&&c>9&1,a.head.done=!0),t.adler=a.check=0,a.mode=xe;break;case 10:for(;d<32;){if(0===l)break t;l--,h+=i[s++]<>>=7&d,d-=7&d,a.mode=27;break}for(;d<3;){if(0===l)break t;l--,h+=i[s++]<>>=1,d-=1,3&h){case 0:a.mode=14;break;case 1:if(Ie(a),a.mode=20,e===ue){h>>>=2,d-=2;break t}break;case 2:a.mode=17;break;case 3:t.msg="invalid block type",a.mode=ze}h>>>=2,d-=2;break;case 14:for(h>>>=7&d,d-=7&d;d<32;){if(0===l)break t;l--,h+=i[s++]<>>16^65535)){t.msg="invalid stored block lengths",a.mode=ze;break}if(a.length=65535&h,h=0,d=0,a.mode=15,e===ue)break t;case 15:a.mode=16;case 16:if(c=a.length,c){if(c>l&&(c=l),c>o&&(c=o),0===c)break t;n.set(i.subarray(s,s+c),r),l-=c,s+=c,o-=c,r+=c,a.length-=c;break}a.mode=xe;break;case 17:for(;d<14;){if(0===l)break t;l--,h+=i[s++]<>>=5,d-=5,a.ndist=1+(31&h),h>>>=5,d-=5,a.ncode=4+(15&h),h>>>=4,d-=4,a.nlen>286||a.ndist>30){t.msg="too many length or distance symbols",a.mode=ze;break}a.have=0,a.mode=18;case 18:for(;a.have>>=3,d-=3}for(;a.have<19;)a.lens[Z[a.have++]]=0;if(a.lencode=a.lendyn,a.lenbits=7,E={bits:a.lenbits},x=_e(0,a.lens,0,19,a.lencode,0,a.work,E),a.lenbits=E.bits,x){t.msg="invalid code lengths set",a.mode=ze;break}a.have=0,a.mode=19;case 19:for(;a.have>>24,g=z>>>16&255,p=65535&z,!(b<=d);){if(0===l)break t;l--,h+=i[s++]<>>=b,d-=b,a.lens[a.have++]=p;else{if(16===p){for(R=b+2;d>>=b,d-=b,0===a.have){t.msg="invalid bit length repeat",a.mode=ze;break}y=a.lens[a.have-1],c=3+(3&h),h>>>=2,d-=2}else if(17===p){for(R=b+3;d>>=b,d-=b,y=0,c=3+(7&h),h>>>=3,d-=3}else{for(R=b+7;d>>=b,d-=b,y=0,c=11+(127&h),h>>>=7,d-=7}if(a.have+c>a.nlen+a.ndist){t.msg="invalid bit length repeat",a.mode=ze;break}for(;c--;)a.lens[a.have++]=y}}if(a.mode===ze)break;if(0===a.lens[256]){t.msg="invalid code -- missing end-of-block",a.mode=ze;break}if(a.lenbits=9,E={bits:a.lenbits},x=_e(1,a.lens,0,a.nlen,a.lencode,0,a.work,E),a.lenbits=E.bits,x){t.msg="invalid literal/lengths set",a.mode=ze;break}if(a.distbits=6,a.distcode=a.distdyn,E={bits:a.distbits},x=_e(2,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,E),a.distbits=E.bits,x){t.msg="invalid distances set",a.mode=ze;break}if(a.mode=20,e===ue)break t;case 20:a.mode=21;case 21:if(l>=6&&o>=258){t.next_out=r,t.avail_out=o,t.next_in=s,t.avail_in=l,a.hold=h,a.bits=d,se(t,f),r=t.next_out,n=t.output,o=t.avail_out,s=t.next_in,i=t.input,l=t.avail_in,h=a.hold,d=a.bits,a.mode===xe&&(a.back=-1);break}for(a.back=0;z=a.lencode[h&(1<>>24,g=z>>>16&255,p=65535&z,!(b<=d);){if(0===l)break t;l--,h+=i[s++]<>m)],b=z>>>24,g=z>>>16&255,p=65535&z,!(m+b<=d);){if(0===l)break t;l--,h+=i[s++]<>>=m,d-=m,a.back+=m}if(h>>>=b,d-=b,a.back+=b,a.length=p,0===g){a.mode=26;break}if(32&g){a.back=-1,a.mode=xe;break}if(64&g){t.msg="invalid literal/length code",a.mode=ze;break}a.extra=15&g,a.mode=22;case 22:if(a.extra){for(R=a.extra;d>>=a.extra,d-=a.extra,a.back+=a.extra}a.was=a.length,a.mode=23;case 23:for(;z=a.distcode[h&(1<>>24,g=z>>>16&255,p=65535&z,!(b<=d);){if(0===l)break t;l--,h+=i[s++]<>m)],b=z>>>24,g=z>>>16&255,p=65535&z,!(m+b<=d);){if(0===l)break t;l--,h+=i[s++]<>>=m,d-=m,a.back+=m}if(h>>>=b,d-=b,a.back+=b,64&g){t.msg="invalid distance code",a.mode=ze;break}a.offset=p,a.extra=15&g,a.mode=24;case 24:if(a.extra){for(R=a.extra;d>>=a.extra,d-=a.extra,a.back+=a.extra}if(a.offset>a.dmax){t.msg="invalid distance too far back",a.mode=ze;break}a.mode=25;case 25:if(0===o)break t;if(c=f-o,a.offset>c){if(c=a.offset-c,c>a.whave&&a.sane){t.msg="invalid distance too far back",a.mode=ze;break}c>a.wnext?(c-=a.wnext,u=a.wsize-c):u=a.wnext-c,c>a.length&&(c=a.length),w=a.window}else w=n,u=r-a.offset,c=a.length;c>o&&(c=o),o-=c,a.length-=c;do{n[r++]=w[u++]}while(--c);0===a.length&&(a.mode=21);break;case 26:if(0===o)break t;n[r++]=a.length,o--,a.mode=21;break;case 27:if(a.wrap){for(;d<32;){if(0===l)break t;l--,h|=i[s++]<{if(!t||!t.state)return pe;let e=t.state;return e.window&&(e.window=null),t.state=null,we},inflateGetHeader:(t,e)=>{if(!t||!t.state)return pe;const a=t.state;return 0==(2&a.wrap)?pe:(a.head=e,e.done=!1,we)},inflateSetDictionary:(t,e)=>{const a=e.length;let i,n,s;return t&&t.state?(i=t.state,0!==i.wrap&&11!==i.mode?pe:11===i.mode&&(n=1,n=B(n,e,a,0),n!==i.check)?me:(s=Fe(t,e,a,a),s?(i.mode=31,ke):(i.havedict=1,we))):pe},inflateInfo:"pako inflate (from Nodeca project)"};var Ne=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const Be=Object.prototype.toString,{Z_NO_FLUSH:Ce,Z_FINISH:Me,Z_OK:He,Z_STREAM_END:je,Z_NEED_DICT:Ke,Z_STREAM_ERROR:Pe,Z_DATA_ERROR:Ye,Z_MEM_ERROR:Ge}=j;function Xe(t){this.options=Bt({chunkSize:65536,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Yt,this.strm.avail_out=0;let a=Le.inflateInit2(this.strm,e.windowBits);if(a!==He)throw new Error(H[a]);if(this.header=new Ne,Le.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=jt(e.dictionary):"[object ArrayBuffer]"===Be.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(a=Le.inflateSetDictionary(this.strm,e.dictionary),a!==He)))throw new Error(H[a])}function We(t,e){const a=new Xe(e);if(a.push(t),a.err)throw a.msg||H[a.err];return a.result}Xe.prototype.push=function(t,e){const a=this.strm,i=this.options.chunkSize,n=this.options.dictionary;let s,r,l;if(this.ended)return!1;for(r=e===~~e?e:!0===e?Me:Ce,"[object ArrayBuffer]"===Be.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;){for(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),s=Le.inflate(a,r),s===Ke&&n&&(s=Le.inflateSetDictionary(a,n),s===He?s=Le.inflate(a,r):s===Ye&&(s=Ke));a.avail_in>0&&s===je&&a.state.wrap>0&&0!==t[a.next_in];)Le.inflateReset(a),s=Le.inflate(a,r);switch(s){case Pe:case Ye:case Ke:case Ge:return this.onEnd(s),this.ended=!0,!1}if(l=a.avail_out,a.next_out&&(0===a.avail_out||s===je))if("string"===this.options.to){let t=Pt(a.output,a.next_out),e=a.next_out-t,n=Kt(a.output,t);a.next_out=e,a.avail_out=i-e,e&&a.output.set(a.output.subarray(t,t+e),0),this.onData(n)}else this.onData(a.output.length===a.next_out?a.output:a.output.subarray(0,a.next_out));if(s!==He||0!==l){if(s===je)return s=Le.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===a.avail_in)break}}return!0},Xe.prototype.onData=function(t){this.chunks.push(t)},Xe.prototype.onEnd=function(t){t===He&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Ct(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var qe={Inflate:Xe,inflate:We,inflateRaw:function(t,e){return(e=e||{}).raw=!0,We(t,e)},ungzip:We,constants:j};const{Deflate:Je,deflate:Qe,deflateRaw:Ve,gzip:$e}=ne,{Inflate:ta,inflate:ea,inflateRaw:aa,ungzip:ia}=qe;var na=Je,sa=Qe,ra=Ve,la=$e,oa=ta,ha=ea,da=aa,_a=ia,fa=j,ca={Deflate:na,deflate:sa,deflateRaw:ra,gzip:la,Inflate:oa,inflate:ha,inflateRaw:da,ungzip:_a,constants:fa};t.Deflate=na,t.Inflate=oa,t.constants=fa,t.default=ca,t.deflate=sa,t.deflateRaw=ra,t.gzip=la,t.inflate=ha,t.inflateRaw=da,t.ungzip=_a,Object.defineProperty(t,"__esModule",{value:!0})})); + /****************** initialization finish ******************/ + // 先拆分B站gRPC校验头和protobuf数据体 + let header = rawBody.slice(0, 5); + body = rawBody.slice(5); + // 处理response压缩protobuf数据体 + switch (header?.[0]) { + case 0: // unGzip + break; + case 1: // Gzip + body = pako.ungzip(body); + header[0] = 0; // unGzip + break; + }; + // 解析链接并处理protobuf数据 + switch (HOST) { + case "grpc.biliapi.net": // HTTP/2 + case "app.bilibili.com": // HTTP/1.1 + /****************** initialization start *******************/ + // google.protobuf.Any + class Any$Type extends MessageType{constructor(){super("google.protobuf.Any",[{no:1,name:"type_url",kind:"scalar",T:9},{no:2,name:"value",kind:"scalar",T:12}])}pack(message,type){return{typeUrl:this.typeNameToUrl(type.typeName),value:type.toBinary(message),}}unpack(any,type,options){if(!this.contains(any,type))throw new Error("Cannot unpack google.protobuf.Any with typeUrl '"+any.typeUrl+"' as "+type.typeName+".");return type.fromBinary(any.value,options)}contains(any,type){if(!any.typeUrl.length)return false;let wants=typeof type=="string"?type:type.typeName;let has=this.typeUrlToName(any.typeUrl);return wants===has}internalJsonWrite(any,options){if(any.typeUrl==="")return{};let typeName=this.typeUrlToName(any.typeUrl);let opt=jsonWriteOptions(options);let type=opt.typeRegistry?.find(t=>t.typeName===typeName);if(!type)throw new globalThis.Error("Unable to convert google.protobuf.Any with typeUrl '"+any.typeUrl+"' to JSON. The specified type "+typeName+" is not available in the type registry.");let value=type.fromBinary(any.value,{readUnknownField:false});let json=type.internalJsonWrite(value,opt);if(typeName.startsWith("google.protobuf.")||!isJsonObject(json))json={value:json};json["@type"]=any.typeUrl;return json}internalJsonRead(json,options,target){if(!isJsonObject(json))throw new globalThis.Error("Unable to parse google.protobuf.Any from JSON "+typeofJsonValue(json)+".");if(typeof json["@type"]!="string"||json["@type"]=="")return this.create();let typeName=this.typeUrlToName(json["@type"]);let type=options?.typeRegistry?.find(t=>t.typeName==typeName);if(!type)throw new globalThis.Error("Unable to parse google.protobuf.Any from JSON. The specified type "+typeName+" is not available in the type registry.");let value;if(typeName.startsWith("google.protobuf.")&&json.hasOwnProperty("value"))value=type.fromJson(json["value"],options);else{let copy=Object.assign({},json);delete copy["@type"];value=type.fromJson(copy,options)}if(target===undefined)target=this.create();target.typeUrl=json["@type"];target.value=type.toBinary(value);return target}typeNameToUrl(name){if(!name.length)throw new Error("invalid type name: "+name);return"type.googleapis.com/"+name}typeUrlToName(url){if(!url.length)throw new Error("invalid type url: "+url);let slash=url.lastIndexOf("/");let name=slash>0?url.substring(slash+1):url;if(!name.length)throw new Error("invalid type url: "+url);return name}create(value){const message={typeUrl:"",value:new Uint8Array(0)};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.posPlayArcConf}])}create(value){const message={};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.posArcConf}])}create(value){const message={};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.posExtraContent}])}create(value){const message={isSupport:false,disabled:false};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.posDynamicList},{no:2,name:"up_list",kind:"message",T:()=>CardVideoUpList},{no:3,name:"topic_list",kind:"message",T:()=>TopicList}])}create(value){const message={};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.posCardVideoUpList}])}create(value){const message={};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.posDynamicItem}])}create(value){const message={list:[]};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.pos["DynamicType",DynamicType]}])}create(value){const message={cardType:0};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.pos { + if (item.cardType !== 15) { + return true; + } + $.log(`🎉 ${$.name}`, "动态综合页广告动态去除"); + return false; + } + ); + } + break; + case false: + $.log(`🚧 ${$.name}`, "用户设置动态综合页广告动态不去除"); + break; + } + body = DynAllReply.toBinary(data); + break; + case "DynVideo": // 动态视频页 + data = DynVideoReply.fromBinary(body); + switch (Settings?.Detail?.Most_visited) { + case true: + default: + if (data.videoUpList) { + data.videoUpList = null; + $.log(`🎉 ${$.name}`, "动态视频页最常访问去除"); + } + break; + case false: + $.log(`🚧 ${$.name}`, "用户设置动态视频页最常访问不去除"); + break; + } + body = DynVideoReply.toBinary(data); + break; + } + break; + case "bilibili.app.view.v1.View": // 视频 + switch (PATHs?.[1]) { + case "View": // 视频播放页 + /****************** initialization start *******************/ + // protobuf/bilibili/app/view/view.proto + class ViewReply$Type extends MessageType{constructor(){super("ViewReply",[{no:6,name:"t_icon",kind:"map",K:9,V:{kind:"message",T:()=>TIcon}},{no:10,name:"relates",kind:"message",repeat:1,T:()=>Relate},{no:30,name:"cms",kind:"message",repeat:1,T:()=>CM},{no:31,name:"cm_config",kind:"message",T:()=>CMConfig}])}create(value){const message={tIcon:{},relates:[],cms:[]};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.posAny}])}create(value){const message={};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.posAny}])}create(value){const message={};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.posCM}])}create(value){const message={};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.pos { + if (item.goto === "cm") { + $.log(`🎉 ${$.name}`, "播放页关联推荐广告去除"); + return false; + } + return true; + }); + } + const adsControlValue = data.cmConfig?.adsControl?.value; + if (Boolean(adsControlValue) && Object.values(adsControlValue).length !== 0) { + data.cmConfig = null; + $.log(`🎉 ${$.name}`, "up主推荐广告弹幕去除"); + } + for (const i in data.tIcon) { + if (data.tIcon[i] === null) { + // 解决tIcon的null is not an object问题 + // console.log(`tIconMap:${i}`); + delete data.tIcon[i]; + } + } + body = ViewReply.toBinary(data); + break; + case false: + $.log(`🚧 ${$.name}`, "用户设置播放页广告不去除"); + break; + }; + break; + } + break; + case "bilibili.community.service.dm.v1.DM": //弹幕配置 + switch (PATHs?.[1]) { + case "DmView": // 弹幕 + //待补充 + break; + } + break; + case "bilibili.pgc.gateway.player.v2.PlayURL": // 番剧 + /****************** initialization start *******************/ + /****************** initialization finish *******************/ + switch (PATHs?.[1]) { + case "PlayView": { // 播放地址 + /****************** initialization start *******************/ + /****************** initialization finish *******************/ + break; + }; + case "PlayConf": // 播放配置 + break; + }; + break; + case "bilibili.app.nativeact.v1.NativeAct": // 活动-节目、动画、韩综(港澳台) + switch (PATHs?.[1]) { + case "Index": // 首页 + break; + }; + break; + case "bilibili.app.interface.v1.Search": // 搜索框 + switch (PATHs?.[1]) { + case "Suggest3": // 搜索建议 + break; + }; + break; + case "bilibili.polymer.app.search.v1.Search": // 搜索结果 + /****************** initialization start *******************/ + /****************** initialization finish *******************/ + switch (PATHs?.[1]) { + case "SearchAll": { // 全部结果(综合) + /****************** initialization start *******************/ + class SearchAllResponse$Type extends MessageType{constructor(){super("SearchAllResponse",[{no:4,name:"item",kind:"message",repeat:1,T:()=>Item}])}create(value){const message={item:[]};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.posSearchAdCard}])}create(value){const message={cardItem:{oneofKind:undefined}};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.pos !(i.cardItem?.oneofKind === "cm")); + $.log(`🎉 ${$.name}`, "搜索页广告去除"); + body = SearchAllResponse.toBinary(data); + break; + case false: + $.log(`🚧 ${$.name}`, "用户设置搜索页广告不去除"); + break; + } + break; + }; + case "SearchByType": { // 分类结果(番剧、用户、影视、专栏) + break; + }; + }; + break; + }; + break; + }; + // protobuf部分处理完后,重新计算并添加B站gRPC校验头 + rawBody = newRawBody({ header, body }); // gzip压缩有问题,别用 + break; + }; + // 写入二进制数据 + if ($.isQuanX()) $response.bodyBytes = rawBody + else $response.body = rawBody; + break; + }; + break; + case "false": + break; + }; +})() + .catch((e) => $.logErr(e)) + .finally(() => { + switch ($response) { + default: { // 有回复数据,返回回复数据 + const FORMAT = ($response?.headers?.["Content-Type"] ?? $response?.headers?.["content-type"])?.split(";")?.[0]; + $.log(`🎉 ${$.name}, finally`, `$response`, `FORMAT: ${FORMAT}`, ""); + //$.log(`🚧 ${$.name}, finally`, `$response: ${JSON.stringify($response)}`, ""); + if ($response?.headers?.["Content-Encoding"]) $response.headers["Content-Encoding"] = "identity"; + if ($response?.headers?.["content-encoding"]) $response.headers["content-encoding"] = "identity"; + if ($.isQuanX()) { + switch (FORMAT) { + case undefined: // 视为无body + // 返回普通数据 + $.done({ headers: $response.headers }); + break; + case "application/x-www-form-urlencoded": + case "text/plain": + case "text/html": + case "text/xml": + case "text/plist": + case "application/xml": + case "application/plist": + case "application/x-plist": + case "text/json": + case "application/json": + default: + // 返回普通数据 + $.done({ headers: $response.headers, body: $response.body }); + break; + case "application/x-protobuf": + case "application/grpc": + case "application/grpc+proto": + case "applecation/octet-stream": + // 返回二进制数据 + //$.log(`${$response.bodyBytes.byteLength}---${$response.bodyBytes.buffer.byteLength}`); + $.done({ headers: $response.headers, bodyBytes: $response.bodyBytes.buffer.slice($response.bodyBytes.byteOffset, $response.bodyBytes.byteLength + $response.bodyBytes.byteOffset) }); + break; + }; + } else $.done($response); + break; + }; + case undefined: { // 无回复数据 + break; + }; + }; + }) + +/***************** Function *****************/ +/** + * Set Environment Variables + * @author VirgilClyne + * @param {String} name - Persistent Store Key + * @param {String} platform - Platform Name + * @param {Object} database - Default DataBase + * @return {Object} { Settings, Caches, Configs } + */ +function setENV(name, platform, database) { + //$.log(`☑️ ${$.name}, Set Environment Variables`, ""); + let { Settings, Caches, Configs } = getENV(name, platform, database); + /***************** Prase *****************/ + traverseObject(Settings, (key, value) => { + if (value === "true" || value === "false") value = JSON.parse(value); // 字符串转Boolean + else if (typeof value === "string") { + if (value?.includes(",")) value = value.split(","); // 字符串转数组 + else if (!isNaN(value)) value = parseInt(value, 10) // 字符串转数字 + }; + return value; + }); + $.log(`✅ ${$.name}, Set Environment Variables`, `Settings: ${typeof Settings}`, `Settings内容: ${JSON.stringify(Settings)}`, ""); + /***************** Caches *****************/ + //$.log(`✅ ${$.name}, Set Environment Variables`, `Caches: ${typeof Caches}`, `Caches内容: ${JSON.stringify(Caches)}`, ""); + /***************** Configs *****************/ + return { Settings, Caches, Configs }; + + function traverseObject(o,c){for(var t in o){var n=o[t];o[t]="object"==typeof n&&null!==n?traverseObject(n,c):c(t,n)}return o} +}; + +/** + * Create New Raw Body + * @author app2smile + * @param {ArrayBuffer} header - unGzip Header + * @param {ArrayBuffer} body - unGzip Body + * @param {String} type - encoding type + * @return {ArrayBuffer} new raw Body with Checksum Header + */ +function newRawBody({ header, body }, encoding = undefined) { + //$.log(`⚠ ${$.name}, Create New Raw Body`, ""); + // Header: 1位:是否校验数据 (0或者1) + 4位:校验值(数据长度) + const flag = (encoding == "gzip") ? 1 : (encoding == "identity") ? 0 : (encoding == undefined) ? 0 : header?.[0] ?? 0; // encoding flag + const checksum = Checksum(body.length); // 校验值为未压缩情况下的数据长度, 不是压缩后的长度 + if (encoding == "gzip") body = pako.gzip(body); // gzip压缩(有问题,别压) + let rawBody = new Uint8Array(header.length + body.length); + rawBody.set([flag], 0) // 0位:Encoding类型,当为1的时候, app会校验1-4位的校验值是否正确 + rawBody.set(checksum, 1) // 1-4位: 校验值(4位) + rawBody.set(body, 5); // 5-end位:protobuf数据 + //$.log(`🎉 ${$.name}, Create New Raw Body`, ""); + return rawBody; + + // 计算校验和 (B站为数据本体字节数) + function Checksum(num) { + let arr = new ArrayBuffer(4); // an Int32 takes 4 bytes + let view = new DataView(arr); + // 首位填充计算过的新数据长度 + view.setUint32(0, num, false); // byteOffset = 0; litteEndian = false + return new Uint8Array(arr); + }; +}; + +/***************** Env *****************/ +// prettier-ignore +// https://github.com/chavyleung/scripts/blob/master/Env.min.js +function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,a)=>{s.call(this,t,(t,s,r)=>{t?a(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.encoding="utf-8",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}getEnv(){return"undefined"!=typeof $environment&&$environment["surge-version"]?"Surge":"undefined"!=typeof $environment&&$environment["stash-version"]?"Stash":"undefined"!=typeof module&&module.exports?"Node.js":"undefined"!=typeof $task?"Quantumult X":"undefined"!=typeof $loon?"Loon":"undefined"!=typeof $rocket?"Shadowrocket":void 0}isNode(){return"Node.js"===this.getEnv()}isQuanX(){return"Quantumult X"===this.getEnv()}isSurge(){return"Surge"===this.getEnv()}isLoon(){return"Loon"===this.getEnv()}isShadowrocket(){return"Shadowrocket"===this.getEnv()}isStash(){return"Stash"===this.getEnv()}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const a=this.getdata(t);if(a)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,a)=>e(a))})}runScript(t,e){return new Promise(s=>{let a=this.getdata("@chavy_boxjs_userCfgs.httpapi");a=a?a.replace(/\n/g,"").trim():a;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[i,o]=a.split("@"),n={url:`http://${o}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":i,Accept:"*/*"},timeout:r};this.post(n,(t,e,a)=>s(a))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),a=!s&&this.fs.existsSync(e);if(!s&&!a)return{};{const a=s?t:e;try{return JSON.parse(this.fs.readFileSync(a))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),a=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):a?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const a=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of a)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,a)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[a+1])>>0==+e[a+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,a]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,a,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,a,r]=/^@(.*?)\.(.*?)$/.exec(e),i=this.getval(a),o=a?"null"===i?null:i||"{}":"{}";try{const e=JSON.parse(o);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),a)}catch(e){const i={};this.lodash_set(i,r,t),s=this.setval(JSON.stringify(i),a)}}else s=this.setval(t,e);return s}getval(t){switch(this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":return $persistentStore.read(t);case"Quantumult X":return $prefs.valueForKey(t);case"Node.js":return this.data=this.loaddata(),this.data[t];default:return this.data&&this.data[t]||null}}setval(t,e){switch(this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":return $persistentStore.write(t,e);case"Quantumult X":return $prefs.setValueForKey(t,e);case"Node.js":return this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0;default:return this.data&&this.data[e]||null}}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){switch(t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"],delete t.headers["content-type"],delete t.headers["content-length"]),this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":default:this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,a)=>{!t&&s&&(s.body=a,s.statusCode=s.status?s.status:s.statusCode,s.status=s.statusCode),e(t,s,a)});break;case"Quantumult X":this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:a,headers:r,body:i,bodyBytes:o}=t;e(null,{status:s,statusCode:a,headers:r,body:i,bodyBytes:o},i,o)},t=>e(t&&t.error||"UndefinedError"));break;case"Node.js":let s=require("iconv-lite");this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:a,statusCode:r,headers:i,rawBody:o}=t,n=s.decode(o,this.encoding);e(null,{status:a,statusCode:r,headers:i,rawBody:o,body:n},n)},t=>{const{message:a,response:r}=t;e(a,r,r&&s.decode(r.rawBody,this.encoding))})}}post(t,e=(()=>{})){const s=t.method?t.method.toLocaleLowerCase():"post";switch(t.body&&t.headers&&!t.headers["Content-Type"]&&!t.headers["content-type"]&&(t.headers["content-type"]="application/x-www-form-urlencoded"),t.headers&&(delete t.headers["Content-Length"],delete t.headers["content-length"]),this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":default:this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient[s](t,(t,s,a)=>{!t&&s&&(s.body=a,s.statusCode=s.status?s.status:s.statusCode,s.status=s.statusCode),e(t,s,a)});break;case"Quantumult X":t.method=s,this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:a,headers:r,body:i,bodyBytes:o}=t;e(null,{status:s,statusCode:a,headers:r,body:i,bodyBytes:o},i,o)},t=>e(t&&t.error||"UndefinedError"));break;case"Node.js":let a=require("iconv-lite");this.initGotEnv(t);const{url:r,...i}=t;this.got[s](r,i).then(t=>{const{statusCode:s,statusCode:r,headers:i,rawBody:o}=t,n=a.decode(o,this.encoding);e(null,{status:s,statusCode:r,headers:i,rawBody:o,body:n},n)},t=>{const{message:s,response:r}=t;e(s,r,r&&a.decode(r.rawBody,this.encoding))})}}time(t,e=null){const s=e?new Date(e):new Date;let a={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in a)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?a[e]:("00"+a[e]).substr((""+a[e]).length)));return t}queryStr(t){let e="";for(const s in t){let a=t[s];null!=a&&""!==a&&("object"==typeof a&&(a=JSON.stringify(a)),e+=`${s}=${a}&`)}return e=e.substring(0,e.length-1),e}msg(e=t,s="",a="",r){const i=t=>{switch(typeof t){case void 0:return t;case"string":switch(this.getEnv()){case"Surge":case"Stash":default:return{url:t};case"Loon":case"Shadowrocket":return t;case"Quantumult X":return{"open-url":t};case"Node.js":return}case"object":switch(this.getEnv()){case"Surge":case"Stash":case"Shadowrocket":default:{let e=t.url||t.openUrl||t["open-url"];return{url:e}}case"Loon":{let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}case"Quantumult X":{let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl,a=t["update-pasteboard"]||t.updatePasteboard;return{"open-url":e,"media-url":s,"update-pasteboard":a}}case"Node.js":return}default:return}};if(!this.isMute)switch(this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":default:$notification.post(e,s,a,i(r));break;case"Quantumult X":$notify(e,s,a,i(r));break;case"Node.js":}if(!this.isMuteLog){let t=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];t.push(e),s&&t.push(s),a&&t.push(a),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){switch(this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":case"Quantumult X":default:this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t);break;case"Node.js":this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack)}}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;switch(this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":case"Quantumult X":default:$done(t);break;case"Node.js":process.exit(1)}}}(t,e)} + +// https://github.com/DualSubs/URL/blob/main/URLs.embedded.min.js +function URLs(s){return new class{constructor(s=[]){this.name="URL v1.0.2",this.opts=s,this.json={scheme:"",host:"",path:"",params:{}}}parse(s){let t=s.match(/(?.+):\/\/(?[^/]+)\/?(?[^?]+)?\??(?.*)?/)?.groups??null;return t?.path||(t.path=""),t?.params&&(t.params=Object.fromEntries(t.params.split("&").map((s=>s.split("="))))),t}stringify(s=this.json){return s?.params?s.scheme+"://"+s.host+"/"+s.path+"?"+Object.entries(s.params).map((s=>s.join("="))).join("&"):s.scheme+"://"+s.host+"/"+s.path}}(s)} + +/** + * Get Environment Variables + * @link https://github.com/VirgilClyne/VirgilClyne/blob/main/function/getENV/getENV.min.js + * @author VirgilClyne + * @param {String} t - Persistent Store Key + * @param {String} e - Platform Name + * @param {Object} n - Default Database + * @return {Object} { Settings, Caches, Configs } + */ +function getENV(t,e,n){let i=$.getjson(t,n),s={};if("undefined"!=typeof $argument&&Boolean($argument)){let t=Object.fromEntries($argument.split("&").map((t=>t.split("="))));for(let e in t)l(s,e,t[e])}let g={...n?.Default?.Settings,...n?.[e]?.Settings,...i?.[e]?.Settings,...s},f={...n?.Default?.Configs,...n?.[e]?.Configs,...i?.[e]?.Configs},o=i?.[e]?.Caches||{};return"string"==typeof o&&(o=JSON.parse(o)),{Settings:g,Caches:o,Configs:f};function l(t,e,n){e.split(".").reduce(((t,i,s)=>t[i]=e.split(".").length===++s?n:t[i]||{}),t)}} \ No newline at end of file diff --git a/Scripts/AdBlock/Bilibili/BiliBili.response.min.js b/Scripts/AdBlock/Bilibili/BiliBili.response.min.js new file mode 100644 index 0000000..d32ff99 --- /dev/null +++ b/Scripts/AdBlock/Bilibili/BiliBili.response.min.js @@ -0,0 +1,669 @@ +/* +WEBSITE: https://biliuniverse.io +README: https://github.com/BiliUniverse +*/ +const $ = new Env("📺 BiliBili: 🛡️ ADBlock v0.3.0(2) response"); +const URL = new URLs(); +const DataBase = { + "ADBlock":{ + "Settings":{ + "Switch":true, + "Detail":{"splash":true,"feed":true,"activity":false,"story":true,"cinema":true,"view":true,"search":true,"xlive":true,"Hot_search":true,"Hot_topics":true,"Most_visited":true,"Dynamic_adcard":true} + } + }, + "Default": { + "Settings":{"Switch":true} + } +}; + +/***************** Processing *****************/ +(async () => { + const { Settings, Caches, Configs } = setENV("BiliBili", "ADBlock", DataBase); + switch (Settings?.Switch) { + case true: + default: + let url = URL.parse($request?.url); + const METHOD = $request?.method, HOST = url?.host, PATH = url?.path, PATHs = PATH.split("/"); + // 解析格式 + const FORMAT = ($response?.headers?.["Content-Type"] ?? $response?.headers?.["content-type"])?.split(";")?.[0]; + $.log(`⚠ ${$.name}`, `METHOD: ${METHOD}`, `HOST: ${HOST}`, `PATH: ${PATH}`, `PATHs: ${PATHs}`, `FORMAT: ${FORMAT}`, ""); + // 创建空数据 + let body = { "code": 0, "message": "0", "data": {} }; + // 格式判断 + switch (FORMAT) { + case undefined: // 视为无body + break; + case "application/x-www-form-urlencoded": + case "text/plain": + case "text/html": + default: + break; + case "text/xml": + case "text/plist": + case "application/xml": + case "application/plist": + case "application/x-plist": + break; + case "text/json": + case "application/json": + body = JSON.parse($response.body); + // 解析链接 + switch (HOST) { + case "www.bilibili.com": + break; + case "app.bilibili.com": + case "app.biliapi.net": + switch (PATH) { + case "x/v2/splash/show": // 开屏页 + case "x/v2/splash/list": // 开屏页 + case "x/v2/splash/brand/list": // 开屏页 + case "x/v2/splash/event/list2": // 开屏页 + switch (Settings?.Detail?.splash) { + case true: + default: + const item = ["account", "event_list", "preload", "show"]; + if (body.data) { + item.forEach((i) => { + delete body.data[i]; + }); + $.log(`🎉 ${$.name}`, "开屏页广告去除"); + } + break; + case false: + $.log(`🚧 ${$.name}`, "用户设置开屏页广告不去除"); + break; + }; + break; + case "x/v2/feed/index": // 推荐页 + switch (Settings?.Detail?.feed) { + case true: + default: + if (body.data.items?.length) { + let params = url?.params;//区分pad与phone + body.data.items = await Promise.all(body.data.items.map(async item => { + const { card_type: cardType, card_goto: cardGoto } = item; + if (cardType && cardGoto) { + if (['banner_v8', 'banner_ipad_v8'].includes(cardType) && cardGoto === 'banner') { + switch (Settings?.Detail?.activity) { + case true: + default: + Caches.banner_hash = item.hash; + $.setjson(Caches, "@BiliBili.ADBlock.Caches"); // 获取banner_hash,无此字段会有活动页且此字段无法伪造. + $.log(`🎉 ${$.name}`, "推荐页活动大图去除"); + return undefined; + case false: + if (item.banner_item) { + item.banner_item = item.banner_item.filter(i => { + if (i.type === 'ad') { + $.log(`🎉 ${$.name}`, "推荐页大图广告去除"); + return false; + } + return true; + }); + } + break; + } + } else if (['cm_v2', 'cm_v1'].includes(cardType) && ['ad_web_s', 'ad_av', 'ad_web_gif'].includes(cardGoto)) { + // ad_player大视频广告 ad_web_gif大gif广告 ad_web_s普通小广告 ad_av创作推广广告 ad_inline_3d 上方大的视频3d广告 ad_inline_eggs 上方大的视频广告 + $.log(`🎉 ${$.name}`, `${cardGoto}广告去除`); + if (params.device !== "phone") { + return undefined;//pad直接去除 + } else { + await fixPosition().then(result => item = result);//小广告补位 + } + } else if (cardType === 'cm_v2' && ['ad_player', 'ad_inline_3d', 'ad_inline_eggs'].includes(cardGoto)) { + $.log(`🎉 ${$.name}`, `${cardGoto}广告去除`); + return undefined;//大广告直接去除 + } else if (cardType === 'small_cover_v10' && cardGoto === 'game') { + $.log(`🎉 ${$.name}`, "游戏广告去除"); + if (params.device !== "phone") { + return undefined;//pad直接去除 + } else { + await fixPosition().then(result => item = result);//小广告补位 + } + } else if (cardType === 'cm_double_v9' && cardGoto === 'ad_inline_av') { + $.log(`🎉 ${$.name}`, "大视频广告去除"); + return undefined;//大广告直接去除 + } + } + return item; + })); + body.data.items = body.data.items.filter(fix => fix !== undefined); + } + async function fixPosition() { + let itemsCache = $.getdata("@BiliBili.Index.Caches",""); + let singleItem = {}; + if (itemsCache.length > 0) { + singleItem = itemsCache.pop(); + $.log(`🎉 ${$.name}`, "推荐页空缺位填充成功"); + } else {//重新获取填充位 + const myRequest = { + url: $request.url, + headers: $request.heders + } + await $.http.get(myRequest).then(response => { + try { + const body = $.toObj(response.body) + if (body?.code === 0 && body?.message === "0") { + body.data.items = body.data.items.map(item => { + const { card_type: cardType, card_goto: cardGoto } = item; + if (cardType && cardGoto) { + if (cardType === 'banner_v8' && cardGoto === 'banner') { + return undefined; + } else if (cardType === 'cm_v2' && ['ad_web_s', 'ad_av', 'ad_web_gif', 'ad_player', 'ad_inline_3d', 'ad_inline_eggs'].includes(cardGoto)) { + return undefined; + } else if (cardType === 'small_cover_v10' && cardGoto === 'game') { + return undefined; + } else if (cardType === 'cm_double_v9' && cardGoto === 'ad_inline_av') { + return undefined; + } else if (cardType === 'large_cover_v9' && cardGoto === 'inline_av_v2') {//补位不需要大视频 + return undefined; + } + } + return item; + }).filter(fix => fix !== undefined); + $.setdata(body.data.items, "@BiliBili.Index.Caches"); + $.log(`🎉 ${$.name}`, "推荐页缓存数组补充成功"); + } else { + $.log(`🚧 ${$.name}`, "访问推荐页尝试填补失败"); + } + } catch (e) { + $.logErr(e, response) + } + }) + itemsCache = $.getdata("@BiliBili.Index.Caches",""); + if (itemsCache.length > 0) { + singleItem = itemsCache.pop(); + $.log(`🎉 ${$.name}`, "推荐页空缺位填充成功"); + } + } + $.setdata(itemsCache, "@BiliBili.Index.Caches"); + return singleItem; + } + break; + case false: + $.log(`🚧 ${$.name}`, "用户设置推荐页广告不去除"); + break; + }; + break; + case "x/v2/feed/index/story": // 首页短视频流 + switch (Settings?.Detail?.story) { + case true: + default: + if (body.data?.items) { + // vertical_live 直播内容 + // vertical_pgc 大会员专享 + body.data.items = body.data.items.filter((i) => !( + i.hasOwnProperty("ad_info") || + ["vertical_ad_av", "vertical_pgc"].includes(i.card_goto) + ) + ); + $.log(`🎉 ${$.name}`, "首页短视频流广告去除"); + } + break; + case false: + $.log(`🚧 ${$.name}`, "用户设置首页短视频流广告不去除"); + break; + }; + break; + case "x/v2/search/square": // 搜索页 + switch (Settings?.Detail?.Hot_search) { + case true: + default: + body.data = body.data.filter((i) => !(i.type === "trending")); + $.log(`🎉 ${$.name}`, "搜索页热搜内容去除"); + break; + case false: + $.log(`🚧 ${$.name}`, "用户设置搜索页热搜内容不去除"); + break; + } + break; + }; + break; + case "api.bilibili.com": + case "api.biliapi.net": + switch (PATH) { + case "pgc/player/api/playurl": // 番剧-播放地址-api + case "pgc/player/web/playurl": // 番剧-播放地址-web + case "pgc/player/web/playurl/html5": // 番剧-播放地址-web-HTML5 + break; + case "pgc/view/v2/app/season": // 番剧页面-内容-app + break; + case "pgc/view/web/season": // 番剧-内容-web + case "pgc/view/pc/season": // 番剧-内容-pc + break; + case "pgc/page/bangumi": // 追番页 + case "pgc/page/cinema/tab": // 观影页 + switch (Settings?.Detail?.cinema) { + case true: + default: + if (body.result?.modules) { + body.result.modules.forEach((i) => { + if (i.style.startsWith("banner")) { + i.items = i.items.filter((j) => j.link.includes("play")); + } else if (i.style.startsWith("function")) { + i.items = i.items.filter((j) => j.blink.startsWith("bilibili")); + } else if ([241, 1283, 1284, 1441].includes(i.module_id)) { + i.items = []; + } else if (i.style.startsWith("tip")) { + i.items = []; + } + }); + $.log(`🎉 ${$.name}`, "观影页广告去除"); + } + break; + case false: + $.log(`🚧 ${$.name}`, "用户设置观影页广告不去除"); + break; + }; + break; + case "x/player/wbi/playurl": // UGC-用户生产内容-播放地址 + break; + case "x/space/acc/info": // 用户空间-账号信息-pc + case "x/space/wbi/acc/info": // 用户空间-账号信息-wbi + switch (url.params?.vmid || url.params?.mid) { + case "11783021": // 哔哩哔哩番剧出差 + case "1988098633": // b站_戲劇咖 + case "2042149112": // b站_綜藝咖 + break; + default: + break; + }; + break; + }; + break; + case "api.live.bilibili.com": + switch (PATH) { + case "xlive/app-room/v1/index/getInfoByRoom": // 直播 + switch (Settings?.Detail?.xlive) { + case true: + default: + if (body.data?.activity_banner_info) { + body.data.activity_banner_info = null; + $.log(`🎉 ${$.name}`, "直播banner广告去除"); + } + if (body.data?.shopping_info) { + body.data.shopping_info = { + is_show: 0 + }; + $.log(`🎉 ${$.name}`, "直播购物广告去除"); + } + if (body.data?.new_tab_info?.outer_list?.length > 0) { + body.data.new_tab_info.outer_list = + body.data.new_tab_info.outer_list.filter((i) => i.biz_id !== 33); + } + break; + case false: + $.log(`🚧 ${$.name}`, "用户设置直播页广告不去除"); + break; + }; + break; + }; + break; + }; + $response.body = JSON.stringify(body); + break; + case "application/x-protobuf": + case "application/grpc": + case "application/grpc+proto": + case "applecation/octet-stream": + let rawBody = $.isQuanX() ? new Uint8Array($response.bodyBytes) : $response.body; + //$.log(`🚧 ${$.name}`, `isBuffer? ${ArrayBuffer.isView(rawBody)}: ${JSON.stringify(rawBody)}`, ""); + /****************** initialization start *******************/ + // timostamm/protobuf-ts + !function(i){"use strict";function _(n,e,i){return e<=n&&n<=i}"undefined"!=typeof module&&module.exports&&!i["encoding-indexes"]&&(i["encoding-indexes"]=require("./encoding-indexes.js")["encoding-indexes"]);var l=Math.floor;function s(n){if(void 0===n)return{};if(n===Object(n))return n;throw TypeError("Could not convert argument to dictionary")}function u(n){return 0<=n&&n<=127}var a=u,b=-1;function c(n){this.tokens=[].slice.call(n),this.tokens.reverse()}c.prototype={endOfStream:function(){return!this.tokens.length},read:function(){return this.tokens.length?this.tokens.pop():b},prepend:function(n){if(Array.isArray(n))for(var e=n;e.length;)this.tokens.push(e.pop());else this.tokens.push(n)},push:function(n){if(Array.isArray(n))for(var e=n;e.length;)this.tokens.unshift(e.shift());else this.tokens.unshift(n)}};var w=-1;function m(n,e){if(n)throw TypeError("Decoder error");return e||65533}function f(n){throw TypeError("The code point "+n+" could not be encoded.")}function r(n){return n=String(n).trim().toLowerCase(),Object.prototype.hasOwnProperty.call(d,n)?d[n]:null}var t,o,n=[{encodings:[{labels:["unicode-1-1-utf-8","utf-8","utf8"],name:"UTF-8"}],heading:"The Encoding"},{encodings:[{labels:["866","cp866","csibm866","ibm866"],name:"IBM866"},{labels:["csisolatin2","iso-8859-2","iso-ir-101","iso8859-2","iso88592","iso_8859-2","iso_8859-2:1987","l2","latin2"],name:"ISO-8859-2"},{labels:["csisolatin3","iso-8859-3","iso-ir-109","iso8859-3","iso88593","iso_8859-3","iso_8859-3:1988","l3","latin3"],name:"ISO-8859-3"},{labels:["csisolatin4","iso-8859-4","iso-ir-110","iso8859-4","iso88594","iso_8859-4","iso_8859-4:1988","l4","latin4"],name:"ISO-8859-4"},{labels:["csisolatincyrillic","cyrillic","iso-8859-5","iso-ir-144","iso8859-5","iso88595","iso_8859-5","iso_8859-5:1988"],name:"ISO-8859-5"},{labels:["arabic","asmo-708","csiso88596e","csiso88596i","csisolatinarabic","ecma-114","iso-8859-6","iso-8859-6-e","iso-8859-6-i","iso-ir-127","iso8859-6","iso88596","iso_8859-6","iso_8859-6:1987"],name:"ISO-8859-6"},{labels:["csisolatingreek","ecma-118","elot_928","greek","greek8","iso-8859-7","iso-ir-126","iso8859-7","iso88597","iso_8859-7","iso_8859-7:1987","sun_eu_greek"],name:"ISO-8859-7"},{labels:["csiso88598e","csisolatinhebrew","hebrew","iso-8859-8","iso-8859-8-e","iso-ir-138","iso8859-8","iso88598","iso_8859-8","iso_8859-8:1988","visual"],name:"ISO-8859-8"},{labels:["csiso88598i","iso-8859-8-i","logical"],name:"ISO-8859-8-I"},{labels:["csisolatin6","iso-8859-10","iso-ir-157","iso8859-10","iso885910","l6","latin6"],name:"ISO-8859-10"},{labels:["iso-8859-13","iso8859-13","iso885913"],name:"ISO-8859-13"},{labels:["iso-8859-14","iso8859-14","iso885914"],name:"ISO-8859-14"},{labels:["csisolatin9","iso-8859-15","iso8859-15","iso885915","iso_8859-15","l9"],name:"ISO-8859-15"},{labels:["iso-8859-16"],name:"ISO-8859-16"},{labels:["cskoi8r","koi","koi8","koi8-r","koi8_r"],name:"KOI8-R"},{labels:["koi8-ru","koi8-u"],name:"KOI8-U"},{labels:["csmacintosh","mac","macintosh","x-mac-roman"],name:"macintosh"},{labels:["dos-874","iso-8859-11","iso8859-11","iso885911","tis-620","windows-874"],name:"windows-874"},{labels:["cp1250","windows-1250","x-cp1250"],name:"windows-1250"},{labels:["cp1251","windows-1251","x-cp1251"],name:"windows-1251"},{labels:["ansi_x3.4-1968","ascii","cp1252","cp819","csisolatin1","ibm819","iso-8859-1","iso-ir-100","iso8859-1","iso88591","iso_8859-1","iso_8859-1:1987","l1","latin1","us-ascii","windows-1252","x-cp1252"],name:"windows-1252"},{labels:["cp1253","windows-1253","x-cp1253"],name:"windows-1253"},{labels:["cp1254","csisolatin5","iso-8859-9","iso-ir-148","iso8859-9","iso88599","iso_8859-9","iso_8859-9:1989","l5","latin5","windows-1254","x-cp1254"],name:"windows-1254"},{labels:["cp1255","windows-1255","x-cp1255"],name:"windows-1255"},{labels:["cp1256","windows-1256","x-cp1256"],name:"windows-1256"},{labels:["cp1257","windows-1257","x-cp1257"],name:"windows-1257"},{labels:["cp1258","windows-1258","x-cp1258"],name:"windows-1258"},{labels:["x-mac-cyrillic","x-mac-ukrainian"],name:"x-mac-cyrillic"}],heading:"Legacy single-byte encodings"},{encodings:[{labels:["chinese","csgb2312","csiso58gb231280","gb2312","gb_2312","gb_2312-80","gbk","iso-ir-58","x-gbk"],name:"GBK"},{labels:["gb18030"],name:"gb18030"}],heading:"Legacy multi-byte Chinese (simplified) encodings"},{encodings:[{labels:["big5","big5-hkscs","cn-big5","csbig5","x-x-big5"],name:"Big5"}],heading:"Legacy multi-byte Chinese (traditional) encodings"},{encodings:[{labels:["cseucpkdfmtjapanese","euc-jp","x-euc-jp"],name:"EUC-JP"},{labels:["csiso2022jp","iso-2022-jp"],name:"ISO-2022-JP"},{labels:["csshiftjis","ms932","ms_kanji","shift-jis","shift_jis","sjis","windows-31j","x-sjis"],name:"Shift_JIS"}],heading:"Legacy multi-byte Japanese encodings"},{encodings:[{labels:["cseuckr","csksc56011987","euc-kr","iso-ir-149","korean","ks_c_5601-1987","ks_c_5601-1989","ksc5601","ksc_5601","windows-949"],name:"EUC-KR"}],heading:"Legacy multi-byte Korean encodings"},{encodings:[{labels:["csiso2022kr","hz-gb-2312","iso-2022-cn","iso-2022-cn-ext","iso-2022-kr"],name:"replacement"},{labels:["utf-16be"],name:"UTF-16BE"},{labels:["utf-16","utf-16le"],name:"UTF-16LE"},{labels:["x-user-defined"],name:"x-user-defined"}],heading:"Legacy miscellaneous encodings"}],d={},h=(n.forEach(function(n){n.encodings.forEach(function(e){e.labels.forEach(function(n){d[n]=e})})}),{}),g={};function y(n,e){return e&&e[n]||null}function p(n,e){e=e.indexOf(n);return-1===e?null:e}function v(n){if("encoding-indexes"in i)return i["encoding-indexes"][n];throw Error("Indexes missing. Did you forget to include encoding-indexes.js first?")}var x="utf-8";function O(n,e){if(!(this instanceof O))throw TypeError("Called as a function. Did you forget 'new'?");n=void 0!==n?String(n):x,e=s(e),this._encoding=null,this._decoder=null,this._ignoreBOM=!1,this._BOMseen=!1,this._error_mode="replacement",this._do_not_flush=!1;var i=r(n);if(null===i||"replacement"===i.name)throw RangeError("Unknown encoding: "+n);if(g[i.name])return(n=this)._encoding=i,Boolean(e.fatal)&&(n._error_mode="fatal"),Boolean(e.ignoreBOM)&&(n._ignoreBOM=!0),Object.defineProperty||(this.encoding=n._encoding.name.toLowerCase(),this.fatal="fatal"===n._error_mode,this.ignoreBOM=n._ignoreBOM),n;throw Error("Decoder not present. Did you forget to include encoding-indexes.js first?")}function k(n,e){if(!(this instanceof k))throw TypeError("Called as a function. Did you forget 'new'?");e=s(e),this._encoding=null,this._encoder=null,this._do_not_flush=!1,this._fatal=Boolean(e.fatal)?"fatal":"replacement";if(Boolean(e.NONSTANDARD_allowLegacyEncoding)){e=r(n=void 0!==n?String(n):x);if(null===e||"replacement"===e.name)throw RangeError("Unknown encoding: "+n);if(!h[e.name])throw Error("Encoder not present. Did you forget to include encoding-indexes.js first?");this._encoding=e}else this._encoding=r("utf-8"),void 0!==n&&"console"in i&&console.warn("TextEncoder constructor called with encoding label, which is ignored.");return Object.defineProperty||(this.encoding=this._encoding.name.toLowerCase()),this}function e(n){var r=n.fatal,t=0,o=0,s=0,l=128,a=191;this.handler=function(n,e){if(e===b&&0!==s)return s=0,m(r);if(e===b)return w;if(0===s){if(_(e,0,127))return e;if(_(e,194,223))s=1,t=31&e;else if(_(e,224,239))224===e&&(l=160),237===e&&(a=159),s=2,t=15&e;else{if(!_(e,240,244))return m(r);240===e&&(l=144),244===e&&(a=143),s=3,t=7&e}return null}var i;return _(e,l,a)?(l=128,a=191,t=t<<6|63&e,(o+=1)!==s?null:(i=t,t=s=o=0,i)):(t=s=o=0,l=128,a=191,n.prepend(e),m(r))}}function E(n){n.fatal;this.handler=function(n,e){if(e===b)return w;if(a(e))return e;_(e,128,2047)?(i=1,r=192):_(e,2048,65535)?(i=2,r=224):_(e,65536,1114111)&&(i=3,r=240);for(var i,r,t=[(e>>6*i)+r];0>6*(i-1)),--i;return t}}function j(i,n){var r=n.fatal;this.handler=function(n,e){return e===b?w:u(e)?e:null===(e=i[e-128])?m(r):e}}function B(r,n){n.fatal;this.handler=function(n,e){var i;return e===b?w:a(e)?e:(null===(i=p(e,r))&&f(e),i+128)}}function S(n){var o=n.fatal,s=0,l=0,a=0;this.handler=function(n,e){var i,r,t;return e===b&&0===s&&0===l&&0===a?w:(e!==b||0===s&&0===l&&0===a||(a=l=s=0,m(o)),0!==a?(i=null,_(e,48,57)&&(i=function(n){if(39419>8,n=255&n;return e?[i,n]:[n,i]}function L(r,n){var t=n.fatal,o=null,s=null;this.handler=function(n,e){var i;return e!==b||null===o&&null===s?e===b&&null===o&&null===s?w:null===o?(o=e,null):(e=r?(o<<8)+e:(e<<8)+o,(o=null)!==s?(i=s,s=null,_(e,56320,57343)?65536+1024*(i-55296)+(e-56320):(n.prepend(A(e,r)),m(t))):_(e,55296,56319)?(s=e,null):_(e,56320,57343)?m(t):e):m(t)}}function M(r,n){n.fatal;this.handler=function(n,e){var i;return e===b?w:_(e,0,65535)?A(e,r):(i=A(55296+(e-65536>>10),r),e=A(56320+(e-65536&1023),r),i.concat(e))}}function N(n){n.fatal;this.handler=function(n,e){return e===b?w:u(e)?e:63360+e-128}}function q(n){n.fatal;this.handler=function(n,e){return e===b?w:a(e)?e:_(e,63360,63487)?e-63360+128:f(e)}}Object.defineProperty&&(Object.defineProperty(O.prototype,"encoding",{get:function(){return this._encoding.name.toLowerCase()}}),Object.defineProperty(O.prototype,"fatal",{get:function(){return"fatal"===this._error_mode}}),Object.defineProperty(O.prototype,"ignoreBOM",{get:function(){return this._ignoreBOM}})),O.prototype.decode=function(n,e){n="object"==typeof n&&n instanceof ArrayBuffer?new Uint8Array(n):"object"==typeof n&&"buffer"in n&&n.buffer instanceof ArrayBuffer?new Uint8Array(n.buffer,n.byteOffset,n.byteLength):new Uint8Array(0);e=s(e),this._do_not_flush||(this._decoder=g[this._encoding.name]({fatal:"fatal"===this._error_mode}),this._BOMseen=!1),this._do_not_flush=Boolean(e.stream);for(var i,r=new c(n),t=[];;){var o=r.read();if(o===b)break;if((i=this._decoder.handler(r,o))===w)break;null!==i&&(Array.isArray(i)?t.push.apply(t,i):t.push(i))}if(!this._do_not_flush){for(;(i=this._decoder.handler(r,r.read()))!==w&&(null!==i&&(Array.isArray(i)?t.push.apply(t,i):t.push(i)),!r.endOfStream()););this._decoder=null}return function(n){e=["UTF-8","UTF-16LE","UTF-16BE"],i=this._encoding.name,-1===e.indexOf(i)||this._ignoreBOM||this._BOMseen||(0>10),56320+(1023&s)))}return t}.call(this,t)},Object.defineProperty&&Object.defineProperty(k.prototype,"encoding",{get:function(){return this._encoding.name.toLowerCase()}}),k.prototype.encode=function(n,e){n=void 0===n?"":String(n),e=s(e),this._do_not_flush||(this._encoder=h[this._encoding.name]({fatal:"fatal"===this._fatal})),this._do_not_flush=Boolean(e.stream);for(var i,r=new c(function(n){for(var e=String(n),i=e.length,r=0,t=[];rr in e?__defProp(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t,__spreadValues=(e,r)=>{for(var t in r=r||{})__hasOwnProp.call(r,t)&&__defNormalProp(e,t,r[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(r))__propIsEnum.call(r,t)&&__defNormalProp(e,t,r[t]);return e},__spreadProps=(e,r)=>__defProps(e,__getOwnPropDescs(r));function varint64read(){let r=0,t=0;for(let e=0;e<28;e+=7){var a=this.buf[this.pos++];if(r|=(127&a)<>4,0==(128&e))return this.assertBounds(),[r,t];for(let e=3;e<=31;e+=7){var n=this.buf[this.pos++];if(t|=(127&n)<>>e,s=!(n>>>7==0&&0==t);if(a.push(255&(s?128|n:n)),!s)return}var e=r>>>28&15|(7&t)<<4,i=!(t>>3==0);if(a.push(255&(i?128|e:e)),i){for(let e=3;e<31;e+=7){var o=t>>>e,l=!(o>>>7==0);if(a.push(255&(l?128|o:o)),!l)return}a.push(t>>>31&1)}}const TWO_PWR_32_DBL$1=4294967296;function int64fromString(t){var e="-"==t[0];e&&(t=t.slice(1));let a=0,n=0;function r(e,r){e=Number(t.slice(e,r));n*=1e6,(a=1e6*a+e)>=TWO_PWR_32_DBL$1&&(n+=a/TWO_PWR_32_DBL$1|0,a%=TWO_PWR_32_DBL$1)}return r(-24,-18),r(-18,-12),r(-12,-6),r(-6),[e,a,n]}function int64toString(e,r){if(r<=2097151)return""+(TWO_PWR_32_DBL$1*r+e);var t=(e>>>24|r<<8)>>>0&16777215,r=r>>16&65535;let a=(16777215&e)+6777216*t+6710656*r,n=t+8147497*r,s=2*r;e=1e7;function i(e,r){e=e?String(e):"";return r?"0000000".slice(e.length)+e:e}return a>=e&&(n+=Math.floor(a/e),a%=e),n>=e&&(s+=Math.floor(n/e),n%=e),i(s,0)+i(n,s)+i(a,1)}function varint32write(r,t){if(0<=r){for(;127>>=7;t.push(r)}else{for(let e=0;e<9;e++)t.push(127&r|128),r>>=7;t.push(1)}}function varint32read(){let r=this.buf[this.pos++];var e=127&r;if(0==(128&r))return this.assertBounds(),e;if(e|=(127&(r=this.buf[this.pos++]))<<7,0==(128&r))return this.assertBounds(),e;if(e|=(127&(r=this.buf[this.pos++]))<<14,0==(128&r))return this.assertBounds(),e;if(e|=(127&(r=this.buf[this.pos++]))<<21,0==(128&r))return this.assertBounds(),e;e|=(15&(r=this.buf[this.pos++]))<<28;for(let e=5;0!=(128&r)&&e<10;e++)r=this.buf[this.pos++];if(0!=(128&r))throw new Error("invalid varint");return this.assertBounds(),e>>>0}function detectBi(){var e=new DataView(new ArrayBuffer(8));return void 0!==globalThis.BigInt&&"function"==typeof e.getBigInt64&&"function"==typeof e.getBigUint64&&"function"==typeof e.setBigInt64&&"function"==typeof e.setBigUint64?{MIN:BigInt("-9223372036854775808"),MAX:BigInt("9223372036854775807"),UMIN:BigInt("0"),UMAX:BigInt("18446744073709551615"),C:BigInt,V:e}:void 0}const BI=detectBi();function assertBi(e){if(!e)throw new Error("BigInt unavailable, see https://github.com/timostamm/protobuf-ts/blob/v1.0.8/MANUAL.md#bigint-support")}const RE_DECIMAL_STR=/^-?[0-9]+$/,TWO_PWR_32_DBL=4294967296;class SharedPbLong{constructor(e,r){this.lo=0|e,this.hi=0|r}isZero(){return 0==this.lo&&0==this.hi}toNumber(){var e=this.hi*TWO_PWR_32_DBL+(this.lo>>>0);if(Number.isSafeInteger(e))return e;throw new Error("cannot convert to safe number")}}const _PbULong=class extends SharedPbLong{static from(e){if(BI)switch(typeof e){case"string":if("0"==e)return this.ZERO;if(""==e)throw new Error("string is no integer");e=BI.C(e);case"number":if(0===e)return this.ZERO;e=BI.C(e);case"bigint":if(!e)return this.ZERO;if(eBI.UMAX)throw new Error("ulong too large");return BI.V.setBigUint64(0,e,!0),new _PbULong(BI.V.getInt32(0,!0),BI.V.getInt32(4,!0))}else switch(typeof e){case"string":if("0"==e)return this.ZERO;if(e=e.trim(),!RE_DECIMAL_STR.test(e))throw new Error("string is no integer");var[r,t,a]=int64fromString(e);if(r)throw new Error("signed value");return new _PbULong(t,a);case"number":if(0==e)return this.ZERO;if(!Number.isSafeInteger(e))throw new Error("number is no integer");if(e<0)throw new Error("signed value for ulong");return new _PbULong(e,e/TWO_PWR_32_DBL)}throw new Error("unknown value "+typeof e)}toString(){return BI?this.toBigInt().toString():int64toString(this.lo,this.hi)}toBigInt(){return assertBi(BI),BI.V.setInt32(0,this.lo,!0),BI.V.setInt32(4,this.hi,!0),BI.V.getBigUint64(0,!0)}};let PbULong=_PbULong;PbULong.ZERO=new _PbULong(0,0);const _PbLong=class extends SharedPbLong{static from(e){if(BI)switch(typeof e){case"string":if("0"==e)return this.ZERO;if(""==e)throw new Error("string is no integer");e=BI.C(e);case"number":if(0===e)return this.ZERO;e=BI.C(e);case"bigint":if(!e)return this.ZERO;if(eBI.MAX)throw new Error("ulong too large");return BI.V.setBigInt64(0,e,!0),new _PbLong(BI.V.getInt32(0,!0),BI.V.getInt32(4,!0))}else switch(typeof e){case"string":if("0"==e)return this.ZERO;var r,t,a;if(e=e.trim(),RE_DECIMAL_STR.test(e))return[r,a,t]=int64fromString(e),a=new _PbLong(a,t),r?a.negate():a;throw new Error("string is no integer");case"number":if(0==e)return this.ZERO;if(Number.isSafeInteger(e))return 0>>3,e=7&e;if(r<=0||e<0||5this.len)throw new RangeError("premature EOF")}int32(){return 0|this.uint32()}sint32(){var e=this.uint32();return e>>>1^-(1&e)}int64(){return new PbLong(...this.varint64())}uint64(){return new PbULong(...this.varint64())}sint64(){var[e,r]=this.varint64(),t=-(1&e),e=(e>>>1|(1&r)<<31)^t,r=r>>>1^t;return new PbLong(e,r)}bool(){var[e,r]=this.varint64();return 0!==e||0!==r}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return new PbULong(this.sfixed32(),this.sfixed32())}sfixed64(){return new PbLong(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){var e=this.uint32(),r=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(r,r+e)}string(){return this.textDecoder.decode(this.bytes())}}function assert(e,r){if(!e)throw new Error(r)}const FLOAT32_MAX=34028234663852886e22,FLOAT32_MIN=-34028234663852886e22,UINT32_MAX=4294967295,INT32_MAX=2147483647,INT32_MIN=-2147483648;function assertInt32(e){if("number"!=typeof e)throw new Error("invalid int 32: "+typeof e);if(!Number.isInteger(e)||e>INT32_MAX||eUINT32_MAX||e<0)throw new Error("invalid uint 32: "+e)}function assertFloat32(e){if("number"!=typeof e)throw new Error("invalid float 32: "+typeof e);if(Number.isFinite(e)&&(e>FLOAT32_MAX||e>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(assertUInt32(e);127>>=7;return this.buf.push(e),this}int32(e){return assertInt32(e),varint32write(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){e=this.textEncoder.encode(e);return this.uint32(e.byteLength),this.raw(e)}float(e){assertFloat32(e);var r=new Uint8Array(4);return new DataView(r.buffer).setFloat32(0,e,!0),this.raw(r)}double(e){var r=new Uint8Array(8);return new DataView(r.buffer).setFloat64(0,e,!0),this.raw(r)}fixed32(e){assertUInt32(e);var r=new Uint8Array(4);return new DataView(r.buffer).setUint32(0,e,!0),this.raw(r)}sfixed32(e){assertInt32(e);var r=new Uint8Array(4);return new DataView(r.buffer).setInt32(0,e,!0),this.raw(r)}sint32(e){return assertInt32(e),varint32write(e=(e<<1^e>>31)>>>0,this.buf),this}sfixed64(e){var r=new Uint8Array(8),t=new DataView(r.buffer),e=PbLong.from(e);return t.setInt32(0,e.lo,!0),t.setInt32(4,e.hi,!0),this.raw(r)}fixed64(e){var r=new Uint8Array(8),t=new DataView(r.buffer),e=PbULong.from(e);return t.setInt32(0,e.lo,!0),t.setInt32(4,e.hi,!0),this.raw(r)}int64(e){e=PbLong.from(e);return varint64write(e.lo,e.hi,this.buf),this}sint64(e){var e=PbLong.from(e),r=e.hi>>31;return varint64write(e.lo<<1^r,(e.hi<<1|e.lo>>>31)^r,this.buf),this}uint64(e){e=PbULong.from(e);return varint64write(e.lo,e.hi,this.buf),this}}function binaryWriteOptions(e){return e?__spreadValues(__spreadValues({},defaultsWrite$1),e):defaultsWrite$1}function binaryReadOptions(e){return e?__spreadValues(__spreadValues({},defaultsRead$1),e):defaultsRead$1}!function(i){i.symbol=Symbol.for("protobuf-ts/unknown"),i.onRead=(e,r,t,a,n)=>{(s(r)?r[i.symbol]:r[i.symbol]=[]).push({no:t,wireType:a,data:n})},i.onWrite=(e,r,t)=>{for(var{no:a,wireType:n,data:s}of i.list(r))t.tag(a,n).raw(s)},i.list=(e,r)=>s(e)?(e=e[i.symbol],r?e.filter((e=>e.no==r)):e):[],i.last=(e,r)=>i.list(e,r).slice(-1)[0];const s=e=>e&&Array.isArray(e[i.symbol])}(UnknownFieldHandler=UnknownFieldHandler||{});const defaultsRead$1={readUnknownField:!0,readerFactory:e=>new BinaryReader(e)},defaultsWrite$1={writeUnknownFields:!0,writerFactory:()=>new BinaryWriter},MESSAGE_TYPE=(!function(e){e[e.Varint=0]="Varint",e[e.Bit64=1]="Bit64",e[e.LengthDelimited=2]="LengthDelimited",e[e.StartGroup=3]="StartGroup",e[e.EndGroup=4]="EndGroup",e[e.Bit32=5]="Bit32"}(WireType=WireType||{}),Symbol.for("protobuf-ts/message-type"));function lowerCamelCase(r){let t=!1;var a=[];for(let e=0;e!r.includes(e))))return!1;if(!n&&r.some((e=>!t.known.includes(e))))return!1;if(!(a<1)){for(const i of t.oneofs){const o=e[i];if(!isOneofGroup(o))return!1;if(void 0!==o.oneofKind){var s=this.fields.find((e=>e.localName===o.oneofKind));if(!s)return!1;if(!this.field(o[o.oneofKind],s,n,a))return!1}}for(const l of this.fields)if(void 0===l.oneof&&!this.field(e[l.localName],l,n,a))return!1}}return!0}field(e,r,t,a){var n=r.repeat;switch(r.kind){case"scalar":return void 0===e?r.opt:n?this.scalars(e,r.T,a,r.L):this.scalar(e,r.T,r.L);case"enum":return void 0===e?r.opt:n?this.scalars(e,ScalarType.INT32,a):this.scalar(e,ScalarType.INT32);case"message":return void 0===e?!0:n?this.messages(e,r.T(),t,a):this.message(e,r.T(),t,a);case"map":if("object"!=typeof e||null===e)return!1;if(a<2)return!0;if(!this.mapKeys(e,r.K,a))return!1;switch(r.V.kind){case"scalar":return this.scalars(Object.values(e),r.V.T,a,r.V.L);case"enum":return this.scalars(Object.values(e),ScalarType.INT32,a);case"message":return this.messages(Object.values(e),r.V.T(),t,a)}}return!0}message(e,r,t,a){return t?r.isAssignable(e,a):r.is(e,a)}messages(r,t,e,a){if(!Array.isArray(r))return!1;if(!(a<2))if(e){for(let e=0;eparseInt(e))),r,t);case ScalarType.BOOL:return this.scalars(a.slice(0,t).map((e=>"true"==e||"false"!=e&&e)),r,t);default:return this.scalars(a,r,t,LongType.STRING)}}}function typeofJsonValue(e){var r=typeof e;if("object"==r){if(Array.isArray(e))return"array";if(null===e)return"null"}return r}function isJsonObject(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}let encTable="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),decTable=[];for(let e=0;e>4,i=s,n=2;break;case 2:t[a++]=(15&i)<<4|(60&s)>>2,i=s,n=3;break;case 3:t[a++]=(3&i)<<6|s,n=0}}if(1==n)throw Error("invalid base64 string.");return t.subarray(0,a)}function base64encode(r){let t="",a=0,n,s=0;for(let e=0;e>2],s=(3&n)<<4,a=1;break;case 1:t+=encTable[s|n>>4],s=(15&n)<<2,a=2;break;case 2:t=(t+=encTable[s|n>>6])+encTable[63&n],a=0}return a&&(t=t+encTable[s]+"=",1==a&&(t+="=")),t}function reflectionLongConvert(e,r){switch(r){case LongType.BIGINT:return e.toBigInt();case LongType.NUMBER:return e.toNumber();default:return e.toString()}}decTable["-".charCodeAt(0)]=encTable.indexOf("+"),decTable["_".charCodeAt(0)]=encTable.indexOf("/");class ReflectionJsonReader{constructor(e){this.info=e}prepare(){var e;if(void 0===this.fMap){this.fMap={};for(const r of null!=(e=this.info.fields)?e:[])this.fMap[r.name]=r,this.fMap[r.jsonName]=r,this.fMap[r.localName]=r}}assert(e,r,t){if(!e){let e=typeofJsonValue(t);throw"number"!=e&&"boolean"!=e||(e=t.toString()),new Error(`Cannot parse JSON ${e} for ${this.info.typeName}#`+r)}}read(e,r,t){this.prepare();var a,n,s=[];for([a,n]of Object.entries(e)){var i=this.fMap[a];if(!i){if(t.ignoreUnknownFields)continue;throw new Error(`Found unknown field while reading ${this.info.typeName} from JSON format. JSON key: `+a)}var o=i.localName;let e;if(i.oneof){if(s.includes(i.oneof))throw new Error(`Multiple members of the oneof group "${i.oneof}" of ${this.info.typeName} are present in JSON.`);s.push(i.oneof),e=r[i.oneof]={oneofKind:o}}else e=r;if("map"==i.kind){if(null!==n){this.assert(isJsonObject(n),i.name,n);var l,c,u=e[o];for([l,c]of Object.entries(n)){this.assert(null!==c,i.name+" map value",null);let e;switch(i.V.kind){case"message":e=i.V.T().internalJsonRead(c,t);break;case"enum":if(!1===(e=this.enum(i.V.T(),c,i.name,t.ignoreUnknownFields)))continue;break;case"scalar":e=this.scalar(c,i.V.T,i.V.L,i.name)}this.assert(void 0!==e,i.name+" map value",c);let r=l;i.K==ScalarType.BOOL&&(r="true"==r||"false"!=r&&r),u[r=this.scalar(r,i.K,LongType.STRING,i.name).toString()]=e}}}else if(i.repeat){if(null!==n){this.assert(Array.isArray(n),i.name,n);var f=e[o];for(const p of n){this.assert(null!==p,i.name,null);let e;switch(i.kind){case"message":e=i.T().internalJsonRead(p,t);break;case"enum":if(!1===(e=this.enum(i.T(),p,i.name,t.ignoreUnknownFields)))continue;break;case"scalar":e=this.scalar(p,i.T,i.L,i.name)}this.assert(void 0!==e,i.name,n),f.push(e)}}}else switch(i.kind){case"message":null===n&&"google.protobuf.Value"!=i.T().typeName?this.assert(void 0===i.oneof,i.name+" (oneof member)",null):e[o]=i.T().internalJsonRead(n,t,e[o]);break;case"enum":var h=this.enum(i.T(),n,i.name,t.ignoreUnknownFields);!1!==h&&(e[o]=h);break;case"scalar":e[o]=this.scalar(n,i.T,i.L,i.name)}}}enum(r,t,a,n){if("google.protobuf.NullValue"==r[0]&&assert(null===t,`Unable to parse field ${this.info.typeName}#${a}, enum ${r[0]} only accepts null.`),null===t)return 0;switch(typeof t){case"number":return assert(Number.isInteger(t),`Unable to parse field ${this.info.typeName}#${a}, enum can only be integral number, got ${t}.`),t;case"string":let e=t;r[2]&&t.substring(0,r[2].length)===r[2]&&(e=t.substring(r[2].length));var s=r[1][e];return void 0===s&&n?!1:(assert("number"==typeof s,`Unable to parse field ${this.info.typeName}#${a}, enum ${r[0]} has no value for "${t}".`),s)}assert(!1,`Unable to parse field ${this.info.typeName}#${a}, cannot parse enum value from ${typeof t}".`)}scalar(r,t,a,e){let n;try{switch(t){case ScalarType.DOUBLE:case ScalarType.FLOAT:if(null===r)return 0;if("NaN"===r)return Number.NaN;if("Infinity"===r)return Number.POSITIVE_INFINITY;if("-Infinity"===r)return Number.NEGATIVE_INFINITY;if(""===r)n="empty string";else if("string"==typeof r&&r.trim().length!==r.length)n="extra whitespace";else if("string"==typeof r||"number"==typeof r){var s=Number(r);if(Number.isNaN(s))n="not a number";else{if(Number.isFinite(s))return t==ScalarType.FLOAT&&assertFloat32(s),s;n="too large or small"}}break;case ScalarType.INT32:case ScalarType.FIXED32:case ScalarType.SFIXED32:case ScalarType.SINT32:case ScalarType.UINT32:if(null===r)return 0;let e;if("number"==typeof r?e=r:""===r?n="empty string":"string"==typeof r&&(r.trim().length!==r.length?n="extra whitespace":e=Number(r)),void 0===e)break;return(t==ScalarType.UINT32?assertUInt32:assertInt32)(e),e;case ScalarType.INT64:case ScalarType.SFIXED64:case ScalarType.SINT64:if(null===r)return reflectionLongConvert(PbLong.ZERO,a);if("number"!=typeof r&&"string"!=typeof r)break;return reflectionLongConvert(PbLong.from(r),a);case ScalarType.FIXED64:case ScalarType.UINT64:if(null===r)return reflectionLongConvert(PbULong.ZERO,a);if("number"!=typeof r&&"string"!=typeof r)break;return reflectionLongConvert(PbULong.from(r),a);case ScalarType.BOOL:if(null===r)return!1;if("boolean"!=typeof r)break;return r;case ScalarType.STRING:if(null===r)return"";if("string"!=typeof r){n="extra whitespace";break}try{encodeURIComponent(r)}catch(e){0;break}return r;case ScalarType.BYTES:if(null===r||""===r)return new Uint8Array(0);if("string"!=typeof r)break;return base64decode(r)}}catch(e){n=e.message}this.assert(!1,e+(n?" - "+n:""),r)}}class ReflectionJsonWriter{constructor(e){this.fields=null!=(e=e.fields)?e:[]}write(e,r){var t,a,n={},s=e;for(const i of this.fields)i.oneof?(t=s[i.oneof]).oneofKind===i.localName&&(a="scalar"==i.kind||"enum"==i.kind?__spreadProps(__spreadValues({},r),{emitDefaultValues:!0}):r,assert(void 0!==(t=this.field(i,t[i.localName],a))),n[r.useProtoFieldName?i.name:i.jsonName]=t):void 0!==(a=this.field(i,s[i.localName],r))&&(n[r.useProtoFieldName?i.name:i.jsonName]=a);return n}field(r,t,a){let e=void 0;if("map"==r.kind){assert("object"==typeof t&&null!==t);var n={};switch(r.V.kind){case"scalar":for(var[s,i]of Object.entries(t)){i=this.scalar(r.V.T,i,r.name,!1,!0);assert(void 0!==i),n[s.toString()]=i}break;case"message":var o,l,c=r.V.T();for([o,l]of Object.entries(t)){var u=this.message(c,l,r.name,a);assert(void 0!==u),n[o.toString()]=u}break;case"enum":var f,h,p=r.V.T();for([f,h]of Object.entries(t)){assert(void 0===h||"number"==typeof h);var d=this.enum(p,h,r.name,!1,!0,a.enumAsInteger);assert(void 0!==d),n[f.toString()]=d}}(a.emitDefaultValues||0[e.no,e]))))}read(a,n,s,e){this.prepare();for(var r=void 0===e?a.len:a.pos+e;a.pose.no-r.no)))}write(n,s,i){this.prepare();for(const f of this.fields){let e,r,t=f.repeat,a=f.localName;if(f.oneof){var o=n[f.oneof];if(o.oneofKind!==a)continue;e=o[a],r=!0}else e=n[a],r=!1;switch(f.kind){case"scalar":case"enum":var l="enum"==f.kind?ScalarType.INT32:f.T;if(t)if(assert(Array.isArray(e)),t==RepeatType.PACKED)this.packed(s,l,f.no,e);else for(const h of e)this.scalar(s,l,f.no,h,!0);else void 0===e?assert(f.opt):this.scalar(s,l,f.no,e,r||f.opt);break;case"message":if(t){assert(Array.isArray(e));for(const p of e)this.message(s,i,f.T(),f.no,p)}else this.message(s,i,f.T(),f.no,e);break;case"map":assert("object"==typeof e&&null!==e);for(var[c,u]of Object.entries(e))this.mapEntry(s,i,f,c,u)}}var e=i.writeUnknownFields;!1!==e&&(!0===e?UnknownFieldHandler.onWrite:e)(this.info.typeName,n,s)}mapEntry(e,r,t,a,n){e.tag(t.no,WireType.LengthDelimited),e.fork();let s=a;switch(t.K){case ScalarType.INT32:case ScalarType.FIXED32:case ScalarType.UINT32:case ScalarType.SFIXED32:case ScalarType.SINT32:s=Number.parseInt(a);break;case ScalarType.BOOL:assert("true"==a||"false"==a),s="true"==a}switch(this.scalar(e,t.K,1,s,!0),t.V.kind){case"scalar":this.scalar(e,t.V.T,2,n,!0);break;case"enum":this.scalar(e,ScalarType.INT32,2,n,!0);break;case"message":this.message(e,r,t.V.T(),2,n)}e.join()}message(e,r,t,a,n){void 0!==n&&(t.internalBinaryWrite(n,e.tag(a,WireType.LengthDelimited).fork(),r),e.join())}scalar(e,r,t,a,n){var[r,s,i]=this.scalarInfo(r,a);i&&!n||(e.tag(t,r),e[s](a))}packed(r,e,t,a){if(a.length){assert(e!==ScalarType.BYTES&&e!==ScalarType.STRING),r.tag(t,WireType.LengthDelimited),r.fork();var[,n]=this.scalarInfo(e);for(let e=0;e=0;)t[e]=0}const a=256,i=286,n=30,s=15,r=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),l=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),o=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),h=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),d=new Array(576);e(d);const _=new Array(60);e(_);const f=new Array(512);e(f);const c=new Array(256);e(c);const u=new Array(29);e(u);const w=new Array(n);function b(t,e,a,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=a,this.elems=i,this.max_length=n,this.has_stree=t&&t.length}let g,p,m;function k(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}e(w);const v=t=>t<256?f[t]:f[256+(t>>>7)],y=(t,e)=>{t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},x=(t,e,a)=>{t.bi_valid>16-a?(t.bi_buf|=e<>16-t.bi_valid,t.bi_valid+=a-16):(t.bi_buf|=e<{x(t,a[2*e],a[2*e+1])},A=(t,e)=>{let a=0;do{a|=1&t,t>>>=1,a<<=1}while(--e>0);return a>>>1},E=(t,e,a)=>{const i=new Array(16);let n,r,l=0;for(n=1;n<=s;n++)i[n]=l=l+a[n-1]<<1;for(r=0;r<=e;r++){let e=t[2*r+1];0!==e&&(t[2*r]=A(i[e]++,e))}},R=t=>{let e;for(e=0;e{t.bi_valid>8?y(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},U=(t,e,a,i)=>{const n=2*e,s=2*a;return t[n]{const i=t.heap[a];let n=a<<1;for(;n<=t.heap_len&&(n{let n,s,o,h,d=0;if(0!==t.last_lit)do{n=t.pending_buf[t.d_buf+2*d]<<8|t.pending_buf[t.d_buf+2*d+1],s=t.pending_buf[t.l_buf+d],d++,0===n?z(t,s,e):(o=c[s],z(t,o+a+1,e),h=r[o],0!==h&&(s-=u[o],x(t,s,h)),n--,o=v(n),z(t,o,i),h=l[o],0!==h&&(n-=w[o],x(t,n,h)))}while(d{const a=e.dyn_tree,i=e.stat_desc.static_tree,n=e.stat_desc.has_stree,r=e.stat_desc.elems;let l,o,h,d=-1;for(t.heap_len=0,t.heap_max=573,l=0;l>1;l>=1;l--)S(t,a,l);h=r;do{l=t.heap[1],t.heap[1]=t.heap[t.heap_len--],S(t,a,1),o=t.heap[1],t.heap[--t.heap_max]=l,t.heap[--t.heap_max]=o,a[2*h]=a[2*l]+a[2*o],t.depth[h]=(t.depth[l]>=t.depth[o]?t.depth[l]:t.depth[o])+1,a[2*l+1]=a[2*o+1]=h,t.heap[1]=h++,S(t,a,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((t,e)=>{const a=e.dyn_tree,i=e.max_code,n=e.stat_desc.static_tree,r=e.stat_desc.has_stree,l=e.stat_desc.extra_bits,o=e.stat_desc.extra_base,h=e.stat_desc.max_length;let d,_,f,c,u,w,b=0;for(c=0;c<=s;c++)t.bl_count[c]=0;for(a[2*t.heap[t.heap_max]+1]=0,d=t.heap_max+1;d<573;d++)_=t.heap[d],c=a[2*a[2*_+1]+1]+1,c>h&&(c=h,b++),a[2*_+1]=c,_>i||(t.bl_count[c]++,u=0,_>=o&&(u=l[_-o]),w=a[2*_],t.opt_len+=w*(c+u),r&&(t.static_len+=w*(n[2*_+1]+u)));if(0!==b){do{for(c=h-1;0===t.bl_count[c];)c--;t.bl_count[c]--,t.bl_count[c+1]+=2,t.bl_count[h]--,b-=2}while(b>0);for(c=h;0!==c;c--)for(_=t.bl_count[c];0!==_;)f=t.heap[--d],f>i||(a[2*f+1]!==c&&(t.opt_len+=(c-a[2*f+1])*a[2*f],a[2*f+1]=c),_--)}})(t,e),E(a,d,t.bl_count)},O=(t,e,a)=>{let i,n,s=-1,r=e[1],l=0,o=7,h=4;for(0===r&&(o=138,h=3),e[2*(a+1)+1]=65535,i=0;i<=a;i++)n=r,r=e[2*(i+1)+1],++l{let i,n,s=-1,r=e[1],l=0,o=7,h=4;for(0===r&&(o=138,h=3),i=0;i<=a;i++)if(n=r,r=e[2*(i+1)+1],!(++l{x(t,0+(i?1:0),3),((t,e,a,i)=>{Z(t),i&&(y(t,a),y(t,~a)),t.pending_buf.set(t.window.subarray(e,e+a),t.pending),t.pending+=a})(t,e,a,!0)};var N={_tr_init:t=>{F||((()=>{let t,e,a,h,k;const v=new Array(16);for(a=0,h=0;h<28;h++)for(u[h]=a,t=0;t<1<>=7;h{let s,r,l=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=(t=>{let e,i=4093624447;for(e=0;e<=31;e++,i>>>=1)if(1&i&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e{let e;for(O(t,t.dyn_ltree,t.l_desc.max_code),O(t,t.dyn_dtree,t.d_desc.max_code),T(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*h[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e})(t),s=t.opt_len+3+7>>>3,r=t.static_len+3+7>>>3,r<=s&&(s=r)):s=r=i+5,i+4<=s&&-1!==e?L(t,e,i,n):4===t.strategy||r===s?(x(t,2+(n?1:0),3),D(t,d,_)):(x(t,4+(n?1:0),3),((t,e,a,i)=>{let n;for(x(t,e-257,5),x(t,a-1,5),x(t,i-4,4),n=0;n(t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&i,t.last_lit++,0===e?t.dyn_ltree[2*i]++:(t.matches++,e--,t.dyn_ltree[2*(c[i]+a+1)]++,t.dyn_dtree[2*v(e)]++),t.last_lit===t.lit_bufsize-1),_tr_align:t=>{x(t,2,3),z(t,256,d),(t=>{16===t.bi_valid?(y(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)})(t)}};var B=(t,e,a,i)=>{let n=65535&t|0,s=t>>>16&65535|0,r=0;for(;0!==a;){r=a>2e3?2e3:a,a-=r;do{n=n+e[i++]|0,s=s+n|0}while(--r);n%=65521,s%=65521}return n|s<<16|0};const C=new Uint32Array((()=>{let t,e=[];for(var a=0;a<256;a++){t=a;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[a]=t}return e})());var M=(t,e,a,i)=>{const n=C,s=i+a;t^=-1;for(let a=i;a>>8^n[255&(t^e[a])];return-1^t},H={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},j={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:K,_tr_stored_block:P,_tr_flush_block:Y,_tr_tally:G,_tr_align:X}=N,{Z_NO_FLUSH:W,Z_PARTIAL_FLUSH:q,Z_FULL_FLUSH:J,Z_FINISH:Q,Z_BLOCK:V,Z_OK:$,Z_STREAM_END:tt,Z_STREAM_ERROR:et,Z_DATA_ERROR:at,Z_BUF_ERROR:it,Z_DEFAULT_COMPRESSION:nt,Z_FILTERED:st,Z_HUFFMAN_ONLY:rt,Z_RLE:lt,Z_FIXED:ot,Z_DEFAULT_STRATEGY:ht,Z_UNKNOWN:dt,Z_DEFLATED:_t}=j,ft=258,ct=262,ut=103,wt=113,bt=666,gt=(t,e)=>(t.msg=H[e],e),pt=t=>(t<<1)-(t>4?9:0),mt=t=>{let e=t.length;for(;--e>=0;)t[e]=0};let kt=(t,e,a)=>(e<{const e=t.state;let a=e.pending;a>t.avail_out&&(a=t.avail_out),0!==a&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+a),t.next_out),t.next_out+=a,e.pending_out+=a,t.total_out+=a,t.avail_out-=a,e.pending-=a,0===e.pending&&(e.pending_out=0))},yt=(t,e)=>{Y(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,vt(t.strm)},xt=(t,e)=>{t.pending_buf[t.pending++]=e},zt=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e},At=(t,e,a,i)=>{let n=t.avail_in;return n>i&&(n=i),0===n?0:(t.avail_in-=n,e.set(t.input.subarray(t.next_in,t.next_in+n),a),1===t.state.wrap?t.adler=B(t.adler,e,n,a):2===t.state.wrap&&(t.adler=M(t.adler,e,n,a)),t.next_in+=n,t.total_in+=n,n)},Et=(t,e)=>{let a,i,n=t.max_chain_length,s=t.strstart,r=t.prev_length,l=t.nice_match;const o=t.strstart>t.w_size-ct?t.strstart-(t.w_size-ct):0,h=t.window,d=t.w_mask,_=t.prev,f=t.strstart+ft;let c=h[s+r-1],u=h[s+r];t.prev_length>=t.good_match&&(n>>=2),l>t.lookahead&&(l=t.lookahead);do{if(a=e,h[a+r]===u&&h[a+r-1]===c&&h[a]===h[s]&&h[++a]===h[s+1]){s+=2,a++;do{}while(h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&sr){if(t.match_start=e,r=i,i>=l)break;c=h[s+r-1],u=h[s+r]}}}while((e=_[e&d])>o&&0!=--n);return r<=t.lookahead?r:t.lookahead},Rt=t=>{const e=t.w_size;let a,i,n,s,r;do{if(s=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-ct)){t.window.set(t.window.subarray(e,e+e),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,i=t.hash_size,a=i;do{n=t.head[--a],t.head[a]=n>=e?n-e:0}while(--i);i=e,a=i;do{n=t.prev[--a],t.prev[a]=n>=e?n-e:0}while(--i);s+=e}if(0===t.strm.avail_in)break;if(i=At(t.strm,t.window,t.strstart+t.lookahead,s),t.lookahead+=i,t.lookahead+t.insert>=3)for(r=t.strstart-t.insert,t.ins_h=t.window[r],t.ins_h=kt(t,t.ins_h,t.window[r+1]);t.insert&&(t.ins_h=kt(t,t.ins_h,t.window[r+3-1]),t.prev[r&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=r,r++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead{let a,i;for(;;){if(t.lookahead=3&&(t.ins_h=kt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==a&&t.strstart-a<=t.w_size-ct&&(t.match_length=Et(t,a)),t.match_length>=3)if(i=G(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=kt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=kt(t,t.ins_h,t.window[t.strstart+1]);else i=G(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(yt(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,e===Q?(yt(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(yt(t,!1),0===t.strm.avail_out)?1:2},Ut=(t,e)=>{let a,i,n;for(;;){if(t.lookahead=3&&(t.ins_h=kt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==a&&t.prev_length4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){n=t.strstart+t.lookahead-3,i=G(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=n&&(t.ins_h=kt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,i&&(yt(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if(i=G(t,0,t.window[t.strstart-1]),i&&yt(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=G(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===Q?(yt(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(yt(t,!1),0===t.strm.avail_out)?1:2};function St(t,e,a,i,n){this.good_length=t,this.max_lazy=e,this.nice_length=a,this.max_chain=i,this.func=n}const Dt=[new St(0,0,0,0,((t,e)=>{let a=65535;for(a>t.pending_buf_size-5&&(a=t.pending_buf_size-5);;){if(t.lookahead<=1){if(Rt(t),0===t.lookahead&&e===W)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;const i=t.block_start+a;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,yt(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-ct&&(yt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===Q?(yt(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(yt(t,!1),t.strm.avail_out),1)})),new St(4,4,8,4,Zt),new St(4,5,16,8,Zt),new St(4,6,32,32,Zt),new St(4,4,16,16,Ut),new St(8,16,32,32,Ut),new St(8,16,128,128,Ut),new St(8,32,128,256,Ut),new St(32,128,258,1024,Ut),new St(32,258,258,4096,Ut)];function Tt(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=_t,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),mt(this.dyn_ltree),mt(this.dyn_dtree),mt(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),mt(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),mt(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Ot=t=>{if(!t||!t.state)return gt(t,et);t.total_in=t.total_out=0,t.data_type=dt;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?42:wt,t.adler=2===e.wrap?0:1,e.last_flush=W,K(e),$},It=t=>{const e=Ot(t);var a;return e===$&&((a=t.state).window_size=2*a.w_size,mt(a.head),a.max_lazy_match=Dt[a.level].max_lazy,a.good_match=Dt[a.level].good_length,a.nice_match=Dt[a.level].nice_length,a.max_chain_length=Dt[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=2,a.match_available=0,a.ins_h=0),e},Ft=(t,e,a,i,n,s)=>{if(!t)return et;let r=1;if(e===nt&&(e=6),i<0?(r=0,i=-i):i>15&&(r=2,i-=16),n<1||n>9||a!==_t||i<8||i>15||e<0||e>9||s<0||s>ot)return gt(t,et);8===i&&(i=9);const l=new Tt;return t.state=l,l.strm=t,l.wrap=r,l.gzhead=null,l.w_bits=i,l.w_size=1<Ft(t,e,_t,15,8,ht),deflateInit2:Ft,deflateReset:It,deflateResetKeep:Ot,deflateSetHeader:(t,e)=>t&&t.state?2!==t.state.wrap?et:(t.state.gzhead=e,$):et,deflate:(t,e)=>{let a,i;if(!t||!t.state||e>V||e<0)return t?gt(t,et):et;const n=t.state;if(!t.output||!t.input&&0!==t.avail_in||n.status===bt&&e!==Q)return gt(t,0===t.avail_out?it:et);n.strm=t;const s=n.last_flush;if(n.last_flush=e,42===n.status)if(2===n.wrap)t.adler=0,xt(n,31),xt(n,139),xt(n,8),n.gzhead?(xt(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),xt(n,255&n.gzhead.time),xt(n,n.gzhead.time>>8&255),xt(n,n.gzhead.time>>16&255),xt(n,n.gzhead.time>>24&255),xt(n,9===n.level?2:n.strategy>=rt||n.level<2?4:0),xt(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(xt(n,255&n.gzhead.extra.length),xt(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(t.adler=M(t.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(xt(n,0),xt(n,0),xt(n,0),xt(n,0),xt(n,0),xt(n,9===n.level?2:n.strategy>=rt||n.level<2?4:0),xt(n,3),n.status=wt);else{let e=_t+(n.w_bits-8<<4)<<8,a=-1;a=n.strategy>=rt||n.level<2?0:n.level<6?1:6===n.level?2:3,e|=a<<6,0!==n.strstart&&(e|=32),e+=31-e%31,n.status=wt,zt(n,e),0!==n.strstart&&(zt(n,t.adler>>>16),zt(n,65535&t.adler)),t.adler=1}if(69===n.status)if(n.gzhead.extra){for(a=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>a&&(t.adler=M(t.adler,n.pending_buf,n.pending-a,a)),vt(t),a=n.pending,n.pending!==n.pending_buf_size));)xt(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>a&&(t.adler=M(t.adler,n.pending_buf,n.pending-a,a)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){a=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>a&&(t.adler=M(t.adler,n.pending_buf,n.pending-a,a)),vt(t),a=n.pending,n.pending===n.pending_buf_size)){i=1;break}i=n.gzindexa&&(t.adler=M(t.adler,n.pending_buf,n.pending-a,a)),0===i&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){a=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>a&&(t.adler=M(t.adler,n.pending_buf,n.pending-a,a)),vt(t),a=n.pending,n.pending===n.pending_buf_size)){i=1;break}i=n.gzindexa&&(t.adler=M(t.adler,n.pending_buf,n.pending-a,a)),0===i&&(n.status=ut)}else n.status=ut;if(n.status===ut&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&vt(t),n.pending+2<=n.pending_buf_size&&(xt(n,255&t.adler),xt(n,t.adler>>8&255),t.adler=0,n.status=wt)):n.status=wt),0!==n.pending){if(vt(t),0===t.avail_out)return n.last_flush=-1,$}else if(0===t.avail_in&&pt(e)<=pt(s)&&e!==Q)return gt(t,it);if(n.status===bt&&0!==t.avail_in)return gt(t,it);if(0!==t.avail_in||0!==n.lookahead||e!==W&&n.status!==bt){let a=n.strategy===rt?((t,e)=>{let a;for(;;){if(0===t.lookahead&&(Rt(t),0===t.lookahead)){if(e===W)return 1;break}if(t.match_length=0,a=G(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,a&&(yt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===Q?(yt(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(yt(t,!1),0===t.strm.avail_out)?1:2})(n,e):n.strategy===lt?((t,e)=>{let a,i,n,s;const r=t.window;for(;;){if(t.lookahead<=ft){if(Rt(t),t.lookahead<=ft&&e===W)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(n=t.strstart-1,i=r[n],i===r[++n]&&i===r[++n]&&i===r[++n])){s=t.strstart+ft;do{}while(i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&nt.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(a=G(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(a=G(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),a&&(yt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===Q?(yt(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(yt(t,!1),0===t.strm.avail_out)?1:2})(n,e):Dt[n.level].func(n,e);if(3!==a&&4!==a||(n.status=bt),1===a||3===a)return 0===t.avail_out&&(n.last_flush=-1),$;if(2===a&&(e===q?X(n):e!==V&&(P(n,0,0,!1),e===J&&(mt(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),vt(t),0===t.avail_out))return n.last_flush=-1,$}return e!==Q?$:n.wrap<=0?tt:(2===n.wrap?(xt(n,255&t.adler),xt(n,t.adler>>8&255),xt(n,t.adler>>16&255),xt(n,t.adler>>24&255),xt(n,255&t.total_in),xt(n,t.total_in>>8&255),xt(n,t.total_in>>16&255),xt(n,t.total_in>>24&255)):(zt(n,t.adler>>>16),zt(n,65535&t.adler)),vt(t),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?$:tt)},deflateEnd:t=>{if(!t||!t.state)return et;const e=t.state.status;return 42!==e&&69!==e&&73!==e&&91!==e&&e!==ut&&e!==wt&&e!==bt?gt(t,et):(t.state=null,e===wt?gt(t,at):$)},deflateSetDictionary:(t,e)=>{let a=e.length;if(!t||!t.state)return et;const i=t.state,n=i.wrap;if(2===n||1===n&&42!==i.status||i.lookahead)return et;if(1===n&&(t.adler=B(t.adler,e,a,0)),i.wrap=0,a>=i.w_size){0===n&&(mt(i.head),i.strstart=0,i.block_start=0,i.insert=0);let t=new Uint8Array(i.w_size);t.set(e.subarray(a-i.w_size,a),0),e=t,a=i.w_size}const s=t.avail_in,r=t.next_in,l=t.input;for(t.avail_in=a,t.next_in=0,t.input=e,Rt(i);i.lookahead>=3;){let t=i.strstart,e=i.lookahead-2;do{i.ins_h=kt(i,i.ins_h,i.window[t+3-1]),i.prev[t&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=t,t++}while(--e);i.strstart=t,i.lookahead=2,Rt(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,t.next_in=r,t.input=l,t.avail_in=s,i.wrap=n,$},deflateInfo:"pako deflate (from Nodeca project)"};const Nt=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var Bt=function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const a=e.shift();if(a){if("object"!=typeof a)throw new TypeError(a+"must be non-object");for(const e in a)Nt(a,e)&&(t[e]=a[e])}}return t},Ct=t=>{let e=0;for(let a=0,i=t.length;a=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;Ht[254]=Ht[254]=1;var jt=t=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(t);let e,a,i,n,s,r=t.length,l=0;for(n=0;n>>6,e[s++]=128|63&a):a<65536?(e[s++]=224|a>>>12,e[s++]=128|a>>>6&63,e[s++]=128|63&a):(e[s++]=240|a>>>18,e[s++]=128|a>>>12&63,e[s++]=128|a>>>6&63,e[s++]=128|63&a);return e},Kt=(t,e)=>{const a=e||t.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(t.subarray(0,e));let i,n;const s=new Array(2*a);for(n=0,i=0;i4)s[n++]=65533,i+=r-1;else{for(e&=2===r?31:3===r?15:7;r>1&&i1?s[n++]=65533:e<65536?s[n++]=e:(e-=65536,s[n++]=55296|e>>10&1023,s[n++]=56320|1023&e)}}return((t,e)=>{if(e<65534&&t.subarray&&Mt)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let a="";for(let i=0;i{(e=e||t.length)>t.length&&(e=t.length);let a=e-1;for(;a>=0&&128==(192&t[a]);)a--;return a<0||0===a?e:a+Ht[t[a]]>e?a:e};var Yt=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Gt=Object.prototype.toString,{Z_NO_FLUSH:Xt,Z_SYNC_FLUSH:Wt,Z_FULL_FLUSH:qt,Z_FINISH:Jt,Z_OK:Qt,Z_STREAM_END:Vt,Z_DEFAULT_COMPRESSION:$t,Z_DEFAULT_STRATEGY:te,Z_DEFLATED:ee}=j;function ae(t){this.options=Bt({level:$t,method:ee,chunkSize:16384,windowBits:15,memLevel:8,strategy:te},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Yt,this.strm.avail_out=0;let a=Lt.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(a!==Qt)throw new Error(H[a]);if(e.header&&Lt.deflateSetHeader(this.strm,e.header),e.dictionary){let t;if(t="string"==typeof e.dictionary?jt(e.dictionary):"[object ArrayBuffer]"===Gt.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,a=Lt.deflateSetDictionary(this.strm,t),a!==Qt)throw new Error(H[a]);this._dict_set=!0}}function ie(t,e){const a=new ae(e);if(a.push(t,!0),a.err)throw a.msg||H[a.err];return a.result}ae.prototype.push=function(t,e){const a=this.strm,i=this.options.chunkSize;let n,s;if(this.ended)return!1;for(s=e===~~e?e:!0===e?Jt:Xt,"string"==typeof t?a.input=jt(t):"[object ArrayBuffer]"===Gt.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;)if(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),(s===Wt||s===qt)&&a.avail_out<=6)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else{if(n=Lt.deflate(a,s),n===Vt)return a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),n=Lt.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===Qt;if(0!==a.avail_out){if(s>0&&a.next_out>0)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else if(0===a.avail_in)break}else this.onData(a.output)}return!0},ae.prototype.onData=function(t){this.chunks.push(t)},ae.prototype.onEnd=function(t){t===Qt&&(this.result=Ct(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var ne={Deflate:ae,deflate:ie,deflateRaw:function(t,e){return(e=e||{}).raw=!0,ie(t,e)},gzip:function(t,e){return(e=e||{}).gzip=!0,ie(t,e)},constants:j};var se=function(t,e){let a,i,n,s,r,l,o,h,d,_,f,c,u,w,b,g,p,m,k,v,y,x,z,A;const E=t.state;a=t.next_in,z=t.input,i=a+(t.avail_in-5),n=t.next_out,A=t.output,s=n-(e-t.avail_out),r=n+(t.avail_out-257),l=E.dmax,o=E.wsize,h=E.whave,d=E.wnext,_=E.window,f=E.hold,c=E.bits,u=E.lencode,w=E.distcode,b=(1<>>24,f>>>=m,c-=m,m=p>>>16&255,0===m)A[n++]=65535&p;else{if(!(16&m)){if(0==(64&m)){p=u[(65535&p)+(f&(1<>>=m,c-=m),c<15&&(f+=z[a++]<>>24,f>>>=m,c-=m,m=p>>>16&255,!(16&m)){if(0==(64&m)){p=w[(65535&p)+(f&(1<l){t.msg="invalid distance too far back",E.mode=30;break t}if(f>>>=m,c-=m,m=n-s,v>m){if(m=v-m,m>h&&E.sane){t.msg="invalid distance too far back",E.mode=30;break t}if(y=0,x=_,0===d){if(y+=o-m,m2;)A[n++]=x[y++],A[n++]=x[y++],A[n++]=x[y++],k-=3;k&&(A[n++]=x[y++],k>1&&(A[n++]=x[y++]))}else{y=n-v;do{A[n++]=A[y++],A[n++]=A[y++],A[n++]=A[y++],k-=3}while(k>2);k&&(A[n++]=A[y++],k>1&&(A[n++]=A[y++]))}break}}break}}while(a>3,a-=k,c-=k<<3,f&=(1<{const o=l.bits;let h,d,_,f,c,u,w=0,b=0,g=0,p=0,m=0,k=0,v=0,y=0,x=0,z=0,A=null,E=0;const R=new Uint16Array(16),Z=new Uint16Array(16);let U,S,D,T=null,O=0;for(w=0;w<=re;w++)R[w]=0;for(b=0;b=1&&0===R[p];p--);if(m>p&&(m=p),0===p)return n[s++]=20971520,n[s++]=20971520,l.bits=1,0;for(g=1;g0&&(0===t||1!==p))return-1;for(Z[1]=0,w=1;w852||2===t&&x>592)return 1;for(;;){U=w-v,r[b]u?(S=T[O+r[b]],D=A[E+r[b]]):(S=96,D=0),h=1<>v)+d]=U<<24|S<<16|D|0}while(0!==d);for(h=1<>=1;if(0!==h?(z&=h-1,z+=h):z=0,b++,0==--R[w]){if(w===p)break;w=e[a+r[b]]}if(w>m&&(z&f)!==_){for(0===v&&(v=m),c+=g,k=w-v,y=1<852||2===t&&x>592)return 1;_=z&f,n[_]=m<<24|k<<16|c-s|0}}return 0!==z&&(n[c+z]=w-v<<24|64<<16|0),l.bits=m,0};const{Z_FINISH:fe,Z_BLOCK:ce,Z_TREES:ue,Z_OK:we,Z_STREAM_END:be,Z_NEED_DICT:ge,Z_STREAM_ERROR:pe,Z_DATA_ERROR:me,Z_MEM_ERROR:ke,Z_BUF_ERROR:ve,Z_DEFLATED:ye}=j,xe=12,ze=30,Ae=t=>(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);function Ee(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Re=t=>{if(!t||!t.state)return pe;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,we},Ze=t=>{if(!t||!t.state)return pe;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,Re(t)},Ue=(t,e)=>{let a;if(!t||!t.state)return pe;const i=t.state;return e<0?(a=0,e=-e):(a=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?pe:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=a,i.wbits=e,Ze(t))},Se=(t,e)=>{if(!t)return pe;const a=new Ee;t.state=a,a.window=null;const i=Ue(t,e);return i!==we&&(t.state=null),i};let De,Te,Oe=!0;const Ie=t=>{if(Oe){De=new Int32Array(512),Te=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(_e(1,t.lens,0,288,De,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;_e(2,t.lens,0,32,Te,0,t.work,{bits:5}),Oe=!1}t.lencode=De,t.lenbits=9,t.distcode=Te,t.distbits=5},Fe=(t,e,a,i)=>{let n;const s=t.state;return null===s.window&&(s.wsize=1<=s.wsize?(s.window.set(e.subarray(a-s.wsize,a),0),s.wnext=0,s.whave=s.wsize):(n=s.wsize-s.wnext,n>i&&(n=i),s.window.set(e.subarray(a-i,a-i+n),s.wnext),(i-=n)?(s.window.set(e.subarray(a-i,a),0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whaveSe(t,15),inflateInit2:Se,inflate:(t,e)=>{let a,i,n,s,r,l,o,h,d,_,f,c,u,w,b,g,p,m,k,v,y,x,z=0;const A=new Uint8Array(4);let E,R;const Z=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return pe;a=t.state,a.mode===xe&&(a.mode=13),r=t.next_out,n=t.output,o=t.avail_out,s=t.next_in,i=t.input,l=t.avail_in,h=a.hold,d=a.bits,_=l,f=o,x=we;t:for(;;)switch(a.mode){case 1:if(0===a.wrap){a.mode=13;break}for(;d<16;){if(0===l)break t;l--,h+=i[s++]<>>8&255,a.check=M(a.check,A,2,0),h=0,d=0,a.mode=2;break}if(a.flags=0,a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",a.mode=ze;break}if((15&h)!==ye){t.msg="unknown compression method",a.mode=ze;break}if(h>>>=4,d-=4,y=8+(15&h),0===a.wbits)a.wbits=y;else if(y>a.wbits){t.msg="invalid window size",a.mode=ze;break}a.dmax=1<>8&1),512&a.flags&&(A[0]=255&h,A[1]=h>>>8&255,a.check=M(a.check,A,2,0)),h=0,d=0,a.mode=3;case 3:for(;d<32;){if(0===l)break t;l--,h+=i[s++]<>>8&255,A[2]=h>>>16&255,A[3]=h>>>24&255,a.check=M(a.check,A,4,0)),h=0,d=0,a.mode=4;case 4:for(;d<16;){if(0===l)break t;l--,h+=i[s++]<>8),512&a.flags&&(A[0]=255&h,A[1]=h>>>8&255,a.check=M(a.check,A,2,0)),h=0,d=0,a.mode=5;case 5:if(1024&a.flags){for(;d<16;){if(0===l)break t;l--,h+=i[s++]<>>8&255,a.check=M(a.check,A,2,0)),h=0,d=0}else a.head&&(a.head.extra=null);a.mode=6;case 6:if(1024&a.flags&&(c=a.length,c>l&&(c=l),c&&(a.head&&(y=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Uint8Array(a.head.extra_len)),a.head.extra.set(i.subarray(s,s+c),y)),512&a.flags&&(a.check=M(a.check,i,c,s)),l-=c,s+=c,a.length-=c),a.length))break t;a.length=0,a.mode=7;case 7:if(2048&a.flags){if(0===l)break t;c=0;do{y=i[s+c++],a.head&&y&&a.length<65536&&(a.head.name+=String.fromCharCode(y))}while(y&&c>9&1,a.head.done=!0),t.adler=a.check=0,a.mode=xe;break;case 10:for(;d<32;){if(0===l)break t;l--,h+=i[s++]<>>=7&d,d-=7&d,a.mode=27;break}for(;d<3;){if(0===l)break t;l--,h+=i[s++]<>>=1,d-=1,3&h){case 0:a.mode=14;break;case 1:if(Ie(a),a.mode=20,e===ue){h>>>=2,d-=2;break t}break;case 2:a.mode=17;break;case 3:t.msg="invalid block type",a.mode=ze}h>>>=2,d-=2;break;case 14:for(h>>>=7&d,d-=7&d;d<32;){if(0===l)break t;l--,h+=i[s++]<>>16^65535)){t.msg="invalid stored block lengths",a.mode=ze;break}if(a.length=65535&h,h=0,d=0,a.mode=15,e===ue)break t;case 15:a.mode=16;case 16:if(c=a.length,c){if(c>l&&(c=l),c>o&&(c=o),0===c)break t;n.set(i.subarray(s,s+c),r),l-=c,s+=c,o-=c,r+=c,a.length-=c;break}a.mode=xe;break;case 17:for(;d<14;){if(0===l)break t;l--,h+=i[s++]<>>=5,d-=5,a.ndist=1+(31&h),h>>>=5,d-=5,a.ncode=4+(15&h),h>>>=4,d-=4,a.nlen>286||a.ndist>30){t.msg="too many length or distance symbols",a.mode=ze;break}a.have=0,a.mode=18;case 18:for(;a.have>>=3,d-=3}for(;a.have<19;)a.lens[Z[a.have++]]=0;if(a.lencode=a.lendyn,a.lenbits=7,E={bits:a.lenbits},x=_e(0,a.lens,0,19,a.lencode,0,a.work,E),a.lenbits=E.bits,x){t.msg="invalid code lengths set",a.mode=ze;break}a.have=0,a.mode=19;case 19:for(;a.have>>24,g=z>>>16&255,p=65535&z,!(b<=d);){if(0===l)break t;l--,h+=i[s++]<>>=b,d-=b,a.lens[a.have++]=p;else{if(16===p){for(R=b+2;d>>=b,d-=b,0===a.have){t.msg="invalid bit length repeat",a.mode=ze;break}y=a.lens[a.have-1],c=3+(3&h),h>>>=2,d-=2}else if(17===p){for(R=b+3;d>>=b,d-=b,y=0,c=3+(7&h),h>>>=3,d-=3}else{for(R=b+7;d>>=b,d-=b,y=0,c=11+(127&h),h>>>=7,d-=7}if(a.have+c>a.nlen+a.ndist){t.msg="invalid bit length repeat",a.mode=ze;break}for(;c--;)a.lens[a.have++]=y}}if(a.mode===ze)break;if(0===a.lens[256]){t.msg="invalid code -- missing end-of-block",a.mode=ze;break}if(a.lenbits=9,E={bits:a.lenbits},x=_e(1,a.lens,0,a.nlen,a.lencode,0,a.work,E),a.lenbits=E.bits,x){t.msg="invalid literal/lengths set",a.mode=ze;break}if(a.distbits=6,a.distcode=a.distdyn,E={bits:a.distbits},x=_e(2,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,E),a.distbits=E.bits,x){t.msg="invalid distances set",a.mode=ze;break}if(a.mode=20,e===ue)break t;case 20:a.mode=21;case 21:if(l>=6&&o>=258){t.next_out=r,t.avail_out=o,t.next_in=s,t.avail_in=l,a.hold=h,a.bits=d,se(t,f),r=t.next_out,n=t.output,o=t.avail_out,s=t.next_in,i=t.input,l=t.avail_in,h=a.hold,d=a.bits,a.mode===xe&&(a.back=-1);break}for(a.back=0;z=a.lencode[h&(1<>>24,g=z>>>16&255,p=65535&z,!(b<=d);){if(0===l)break t;l--,h+=i[s++]<>m)],b=z>>>24,g=z>>>16&255,p=65535&z,!(m+b<=d);){if(0===l)break t;l--,h+=i[s++]<>>=m,d-=m,a.back+=m}if(h>>>=b,d-=b,a.back+=b,a.length=p,0===g){a.mode=26;break}if(32&g){a.back=-1,a.mode=xe;break}if(64&g){t.msg="invalid literal/length code",a.mode=ze;break}a.extra=15&g,a.mode=22;case 22:if(a.extra){for(R=a.extra;d>>=a.extra,d-=a.extra,a.back+=a.extra}a.was=a.length,a.mode=23;case 23:for(;z=a.distcode[h&(1<>>24,g=z>>>16&255,p=65535&z,!(b<=d);){if(0===l)break t;l--,h+=i[s++]<>m)],b=z>>>24,g=z>>>16&255,p=65535&z,!(m+b<=d);){if(0===l)break t;l--,h+=i[s++]<>>=m,d-=m,a.back+=m}if(h>>>=b,d-=b,a.back+=b,64&g){t.msg="invalid distance code",a.mode=ze;break}a.offset=p,a.extra=15&g,a.mode=24;case 24:if(a.extra){for(R=a.extra;d>>=a.extra,d-=a.extra,a.back+=a.extra}if(a.offset>a.dmax){t.msg="invalid distance too far back",a.mode=ze;break}a.mode=25;case 25:if(0===o)break t;if(c=f-o,a.offset>c){if(c=a.offset-c,c>a.whave&&a.sane){t.msg="invalid distance too far back",a.mode=ze;break}c>a.wnext?(c-=a.wnext,u=a.wsize-c):u=a.wnext-c,c>a.length&&(c=a.length),w=a.window}else w=n,u=r-a.offset,c=a.length;c>o&&(c=o),o-=c,a.length-=c;do{n[r++]=w[u++]}while(--c);0===a.length&&(a.mode=21);break;case 26:if(0===o)break t;n[r++]=a.length,o--,a.mode=21;break;case 27:if(a.wrap){for(;d<32;){if(0===l)break t;l--,h|=i[s++]<{if(!t||!t.state)return pe;let e=t.state;return e.window&&(e.window=null),t.state=null,we},inflateGetHeader:(t,e)=>{if(!t||!t.state)return pe;const a=t.state;return 0==(2&a.wrap)?pe:(a.head=e,e.done=!1,we)},inflateSetDictionary:(t,e)=>{const a=e.length;let i,n,s;return t&&t.state?(i=t.state,0!==i.wrap&&11!==i.mode?pe:11===i.mode&&(n=1,n=B(n,e,a,0),n!==i.check)?me:(s=Fe(t,e,a,a),s?(i.mode=31,ke):(i.havedict=1,we))):pe},inflateInfo:"pako inflate (from Nodeca project)"};var Ne=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const Be=Object.prototype.toString,{Z_NO_FLUSH:Ce,Z_FINISH:Me,Z_OK:He,Z_STREAM_END:je,Z_NEED_DICT:Ke,Z_STREAM_ERROR:Pe,Z_DATA_ERROR:Ye,Z_MEM_ERROR:Ge}=j;function Xe(t){this.options=Bt({chunkSize:65536,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Yt,this.strm.avail_out=0;let a=Le.inflateInit2(this.strm,e.windowBits);if(a!==He)throw new Error(H[a]);if(this.header=new Ne,Le.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=jt(e.dictionary):"[object ArrayBuffer]"===Be.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(a=Le.inflateSetDictionary(this.strm,e.dictionary),a!==He)))throw new Error(H[a])}function We(t,e){const a=new Xe(e);if(a.push(t),a.err)throw a.msg||H[a.err];return a.result}Xe.prototype.push=function(t,e){const a=this.strm,i=this.options.chunkSize,n=this.options.dictionary;let s,r,l;if(this.ended)return!1;for(r=e===~~e?e:!0===e?Me:Ce,"[object ArrayBuffer]"===Be.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;){for(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),s=Le.inflate(a,r),s===Ke&&n&&(s=Le.inflateSetDictionary(a,n),s===He?s=Le.inflate(a,r):s===Ye&&(s=Ke));a.avail_in>0&&s===je&&a.state.wrap>0&&0!==t[a.next_in];)Le.inflateReset(a),s=Le.inflate(a,r);switch(s){case Pe:case Ye:case Ke:case Ge:return this.onEnd(s),this.ended=!0,!1}if(l=a.avail_out,a.next_out&&(0===a.avail_out||s===je))if("string"===this.options.to){let t=Pt(a.output,a.next_out),e=a.next_out-t,n=Kt(a.output,t);a.next_out=e,a.avail_out=i-e,e&&a.output.set(a.output.subarray(t,t+e),0),this.onData(n)}else this.onData(a.output.length===a.next_out?a.output:a.output.subarray(0,a.next_out));if(s!==He||0!==l){if(s===je)return s=Le.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===a.avail_in)break}}return!0},Xe.prototype.onData=function(t){this.chunks.push(t)},Xe.prototype.onEnd=function(t){t===He&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Ct(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var qe={Inflate:Xe,inflate:We,inflateRaw:function(t,e){return(e=e||{}).raw=!0,We(t,e)},ungzip:We,constants:j};const{Deflate:Je,deflate:Qe,deflateRaw:Ve,gzip:$e}=ne,{Inflate:ta,inflate:ea,inflateRaw:aa,ungzip:ia}=qe;var na=Je,sa=Qe,ra=Ve,la=$e,oa=ta,ha=ea,da=aa,_a=ia,fa=j,ca={Deflate:na,deflate:sa,deflateRaw:ra,gzip:la,Inflate:oa,inflate:ha,inflateRaw:da,ungzip:_a,constants:fa};t.Deflate=na,t.Inflate=oa,t.constants=fa,t.default=ca,t.deflate=sa,t.deflateRaw=ra,t.gzip=la,t.inflate=ha,t.inflateRaw=da,t.ungzip=_a,Object.defineProperty(t,"__esModule",{value:!0})})); + /****************** initialization finish ******************/ + // 先拆分B站gRPC校验头和protobuf数据体 + let header = rawBody.slice(0, 5); + body = rawBody.slice(5); + // 处理response压缩protobuf数据体 + switch (header?.[0]) { + case 0: // unGzip + break; + case 1: // Gzip + body = pako.ungzip(body); + header[0] = 0; // unGzip + break; + }; + // 解析链接并处理protobuf数据 + switch (HOST) { + case "grpc.biliapi.net": // HTTP/2 + case "app.bilibili.com": // HTTP/1.1 + /****************** initialization start *******************/ + // google.protobuf.Any + class Any$Type extends MessageType{constructor(){super("google.protobuf.Any",[{no:1,name:"type_url",kind:"scalar",T:9},{no:2,name:"value",kind:"scalar",T:12}])}pack(message,type){return{typeUrl:this.typeNameToUrl(type.typeName),value:type.toBinary(message),}}unpack(any,type,options){if(!this.contains(any,type))throw new Error("Cannot unpack google.protobuf.Any with typeUrl '"+any.typeUrl+"' as "+type.typeName+".");return type.fromBinary(any.value,options)}contains(any,type){if(!any.typeUrl.length)return false;let wants=typeof type=="string"?type:type.typeName;let has=this.typeUrlToName(any.typeUrl);return wants===has}internalJsonWrite(any,options){if(any.typeUrl==="")return{};let typeName=this.typeUrlToName(any.typeUrl);let opt=jsonWriteOptions(options);let type=opt.typeRegistry?.find(t=>t.typeName===typeName);if(!type)throw new globalThis.Error("Unable to convert google.protobuf.Any with typeUrl '"+any.typeUrl+"' to JSON. The specified type "+typeName+" is not available in the type registry.");let value=type.fromBinary(any.value,{readUnknownField:false});let json=type.internalJsonWrite(value,opt);if(typeName.startsWith("google.protobuf.")||!isJsonObject(json))json={value:json};json["@type"]=any.typeUrl;return json}internalJsonRead(json,options,target){if(!isJsonObject(json))throw new globalThis.Error("Unable to parse google.protobuf.Any from JSON "+typeofJsonValue(json)+".");if(typeof json["@type"]!="string"||json["@type"]=="")return this.create();let typeName=this.typeUrlToName(json["@type"]);let type=options?.typeRegistry?.find(t=>t.typeName==typeName);if(!type)throw new globalThis.Error("Unable to parse google.protobuf.Any from JSON. The specified type "+typeName+" is not available in the type registry.");let value;if(typeName.startsWith("google.protobuf.")&&json.hasOwnProperty("value"))value=type.fromJson(json["value"],options);else{let copy=Object.assign({},json);delete copy["@type"];value=type.fromJson(copy,options)}if(target===undefined)target=this.create();target.typeUrl=json["@type"];target.value=type.toBinary(value);return target}typeNameToUrl(name){if(!name.length)throw new Error("invalid type name: "+name);return"type.googleapis.com/"+name}typeUrlToName(url){if(!url.length)throw new Error("invalid type url: "+url);let slash=url.lastIndexOf("/");let name=slash>0?url.substring(slash+1):url;if(!name.length)throw new Error("invalid type url: "+url);return name}create(value){const message={typeUrl:"",value:new Uint8Array(0)};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.posPlayArcConf}])}create(value){const message={};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.posArcConf}])}create(value){const message={};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.posExtraContent}])}create(value){const message={isSupport:false,disabled:false};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.posDynamicList},{no:2,name:"up_list",kind:"message",T:()=>CardVideoUpList},{no:3,name:"topic_list",kind:"message",T:()=>TopicList}])}create(value){const message={};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.posCardVideoUpList}])}create(value){const message={};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.posDynamicItem}])}create(value){const message={list:[]};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.pos["DynamicType",DynamicType]}])}create(value){const message={cardType:0};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.pos { + if (item.cardType !== 15) { + return true; + } + $.log(`🎉 ${$.name}`, "动态综合页广告动态去除"); + return false; + } + ); + } + break; + case false: + $.log(`🚧 ${$.name}`, "用户设置动态综合页广告动态不去除"); + break; + } + body = DynAllReply.toBinary(data); + break; + case "DynVideo": // 动态视频页 + data = DynVideoReply.fromBinary(body); + switch (Settings?.Detail?.Most_visited) { + case true: + default: + if (data.videoUpList) { + data.videoUpList = null; + $.log(`🎉 ${$.name}`, "动态视频页最常访问去除"); + } + break; + case false: + $.log(`🚧 ${$.name}`, "用户设置动态视频页最常访问不去除"); + break; + } + body = DynVideoReply.toBinary(data); + break; + } + break; + case "bilibili.app.view.v1.View": // 视频 + switch (PATHs?.[1]) { + case "View": // 视频播放页 + /****************** initialization start *******************/ + // protobuf/bilibili/app/view/view.proto + class ViewReply$Type extends MessageType{constructor(){super("ViewReply",[{no:6,name:"t_icon",kind:"map",K:9,V:{kind:"message",T:()=>TIcon}},{no:10,name:"relates",kind:"message",repeat:1,T:()=>Relate},{no:30,name:"cms",kind:"message",repeat:1,T:()=>CM},{no:31,name:"cm_config",kind:"message",T:()=>CMConfig}])}create(value){const message={tIcon:{},relates:[],cms:[]};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.posAny}])}create(value){const message={};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.posAny}])}create(value){const message={};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.posCM}])}create(value){const message={};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.pos { + if (item.goto === "cm") { + $.log(`🎉 ${$.name}`, "播放页关联推荐广告去除"); + return false; + } + return true; + }); + } + const adsControlValue = data.cmConfig?.adsControl?.value; + if (Boolean(adsControlValue) && Object.values(adsControlValue).length !== 0) { + data.cmConfig = null; + $.log(`🎉 ${$.name}`, "up主推荐广告弹幕去除"); + } + for (const i in data.tIcon) { + if (data.tIcon[i] === null) { + // 解决tIcon的null is not an object问题 + // console.log(`tIconMap:${i}`); + delete data.tIcon[i]; + } + } + body = ViewReply.toBinary(data); + break; + case false: + $.log(`🚧 ${$.name}`, "用户设置播放页广告不去除"); + break; + }; + break; + } + break; + case "bilibili.community.service.dm.v1.DM": //弹幕配置 + switch (PATHs?.[1]) { + case "DmView": // 弹幕 + //待补充 + break; + } + break; + case "bilibili.pgc.gateway.player.v2.PlayURL": // 番剧 + /****************** initialization start *******************/ + /****************** initialization finish *******************/ + switch (PATHs?.[1]) { + case "PlayView": { // 播放地址 + /****************** initialization start *******************/ + /****************** initialization finish *******************/ + break; + }; + case "PlayConf": // 播放配置 + break; + }; + break; + case "bilibili.app.nativeact.v1.NativeAct": // 活动-节目、动画、韩综(港澳台) + switch (PATHs?.[1]) { + case "Index": // 首页 + break; + }; + break; + case "bilibili.app.interface.v1.Search": // 搜索框 + switch (PATHs?.[1]) { + case "Suggest3": // 搜索建议 + break; + }; + break; + case "bilibili.polymer.app.search.v1.Search": // 搜索结果 + /****************** initialization start *******************/ + /****************** initialization finish *******************/ + switch (PATHs?.[1]) { + case "SearchAll": { // 全部结果(综合) + /****************** initialization start *******************/ + class SearchAllResponse$Type extends MessageType{constructor(){super("SearchAllResponse",[{no:4,name:"item",kind:"message",repeat:1,T:()=>Item}])}create(value){const message={item:[]};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.posSearchAdCard}])}create(value){const message={cardItem:{oneofKind:undefined}};globalThis.Object.defineProperty(message,MESSAGE_TYPE,{enumerable:false,value:this});if(value!==undefined)reflectionMergePartial(this,message,value);return message}internalBinaryRead(reader,length,options,target){let message=target??this.create(),end=reader.pos+length;while(reader.pos !(i.cardItem?.oneofKind === "cm")); + $.log(`🎉 ${$.name}`, "搜索页广告去除"); + body = SearchAllResponse.toBinary(data); + break; + case false: + $.log(`🚧 ${$.name}`, "用户设置搜索页广告不去除"); + break; + } + break; + }; + case "SearchByType": { // 分类结果(番剧、用户、影视、专栏) + break; + }; + }; + break; + }; + break; + }; + // protobuf部分处理完后,重新计算并添加B站gRPC校验头 + rawBody = newRawBody({ header, body }); // gzip压缩有问题,别用 + break; + }; + // 写入二进制数据 + if ($.isQuanX()) $response.bodyBytes = rawBody + else $response.body = rawBody; + break; + }; + break; + case "false": + break; + }; +})() + .catch((e) => $.logErr(e)) + .finally(() => { + switch ($response) { + default: { // 有回复数据,返回回复数据 + const FORMAT = ($response?.headers?.["Content-Type"] ?? $response?.headers?.["content-type"])?.split(";")?.[0]; + $.log(`🎉 ${$.name}, finally`, `$response`, `FORMAT: ${FORMAT}`, ""); + //$.log(`🚧 ${$.name}, finally`, `$response: ${JSON.stringify($response)}`, ""); + if ($response?.headers?.["Content-Encoding"]) $response.headers["Content-Encoding"] = "identity"; + if ($response?.headers?.["content-encoding"]) $response.headers["content-encoding"] = "identity"; + if ($.isQuanX()) { + switch (FORMAT) { + case undefined: // 视为无body + // 返回普通数据 + $.done({ headers: $response.headers }); + break; + case "application/x-www-form-urlencoded": + case "text/plain": + case "text/html": + case "text/xml": + case "text/plist": + case "application/xml": + case "application/plist": + case "application/x-plist": + case "text/json": + case "application/json": + default: + // 返回普通数据 + $.done({ headers: $response.headers, body: $response.body }); + break; + case "application/x-protobuf": + case "application/grpc": + case "application/grpc+proto": + case "applecation/octet-stream": + // 返回二进制数据 + //$.log(`${$response.bodyBytes.byteLength}---${$response.bodyBytes.buffer.byteLength}`); + $.done({ headers: $response.headers, bodyBytes: $response.bodyBytes.buffer.slice($response.bodyBytes.byteOffset, $response.bodyBytes.byteLength + $response.bodyBytes.byteOffset) }); + break; + }; + } else $.done($response); + break; + }; + case undefined: { // 无回复数据 + break; + }; + }; + }) + +/***************** Function *****************/ +/** + * Set Environment Variables + * @author VirgilClyne + * @param {String} name - Persistent Store Key + * @param {String} platform - Platform Name + * @param {Object} database - Default DataBase + * @return {Object} { Settings, Caches, Configs } + */ +function setENV(name, platform, database) { + //$.log(`☑️ ${$.name}, Set Environment Variables`, ""); + let { Settings, Caches, Configs } = getENV(name, platform, database); + /***************** Prase *****************/ + traverseObject(Settings, (key, value) => { + if (value === "true" || value === "false") value = JSON.parse(value); // 字符串转Boolean + else if (typeof value === "string") { + if (value?.includes(",")) value = value.split(","); // 字符串转数组 + else if (!isNaN(value)) value = parseInt(value, 10) // 字符串转数字 + }; + return value; + }); + $.log(`✅ ${$.name}, Set Environment Variables`, `Settings: ${typeof Settings}`, `Settings内容: ${JSON.stringify(Settings)}`, ""); + /***************** Caches *****************/ + //$.log(`✅ ${$.name}, Set Environment Variables`, `Caches: ${typeof Caches}`, `Caches内容: ${JSON.stringify(Caches)}`, ""); + /***************** Configs *****************/ + return { Settings, Caches, Configs }; + + function traverseObject(o,c){for(var t in o){var n=o[t];o[t]="object"==typeof n&&null!==n?traverseObject(n,c):c(t,n)}return o} +}; + +/** + * Create New Raw Body + * @author app2smile + * @param {ArrayBuffer} header - unGzip Header + * @param {ArrayBuffer} body - unGzip Body + * @param {String} type - encoding type + * @return {ArrayBuffer} new raw Body with Checksum Header + */ +function newRawBody({header,body},encoding=undefined){const flag=(encoding=="gzip")?1:(encoding=="identity")?0:(encoding==undefined)?0:header?.[0]??0;const checksum=Checksum(body.length);if(encoding=="gzip")body=pako.gzip(body);let rawBody=new Uint8Array(header.length+body.length);rawBody.set([flag],0)rawBody.set(checksum,1)rawBody.set(body,5);return rawBody;function Checksum(num){let arr=new ArrayBuffer(4);let view=new DataView(arr);view.setUint32(0,num,false);return new Uint8Array(arr)}}; + +/***************** Env *****************/ +// prettier-ignore +// https://github.com/chavyleung/scripts/blob/master/Env.min.js +function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,a)=>{s.call(this,t,(t,s,r)=>{t?a(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.encoding="utf-8",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}getEnv(){return"undefined"!=typeof $environment&&$environment["surge-version"]?"Surge":"undefined"!=typeof $environment&&$environment["stash-version"]?"Stash":"undefined"!=typeof module&&module.exports?"Node.js":"undefined"!=typeof $task?"Quantumult X":"undefined"!=typeof $loon?"Loon":"undefined"!=typeof $rocket?"Shadowrocket":void 0}isNode(){return"Node.js"===this.getEnv()}isQuanX(){return"Quantumult X"===this.getEnv()}isSurge(){return"Surge"===this.getEnv()}isLoon(){return"Loon"===this.getEnv()}isShadowrocket(){return"Shadowrocket"===this.getEnv()}isStash(){return"Stash"===this.getEnv()}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const a=this.getdata(t);if(a)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,a)=>e(a))})}runScript(t,e){return new Promise(s=>{let a=this.getdata("@chavy_boxjs_userCfgs.httpapi");a=a?a.replace(/\n/g,"").trim():a;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[i,o]=a.split("@"),n={url:`http://${o}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":i,Accept:"*/*"},timeout:r};this.post(n,(t,e,a)=>s(a))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),a=!s&&this.fs.existsSync(e);if(!s&&!a)return{};{const a=s?t:e;try{return JSON.parse(this.fs.readFileSync(a))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),a=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):a?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const a=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of a)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,a)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[a+1])>>0==+e[a+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,a]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,a,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,a,r]=/^@(.*?)\.(.*?)$/.exec(e),i=this.getval(a),o=a?"null"===i?null:i||"{}":"{}";try{const e=JSON.parse(o);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),a)}catch(e){const i={};this.lodash_set(i,r,t),s=this.setval(JSON.stringify(i),a)}}else s=this.setval(t,e);return s}getval(t){switch(this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":return $persistentStore.read(t);case"Quantumult X":return $prefs.valueForKey(t);case"Node.js":return this.data=this.loaddata(),this.data[t];default:return this.data&&this.data[t]||null}}setval(t,e){switch(this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":return $persistentStore.write(t,e);case"Quantumult X":return $prefs.setValueForKey(t,e);case"Node.js":return this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0;default:return this.data&&this.data[e]||null}}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){switch(t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"],delete t.headers["content-type"],delete t.headers["content-length"]),this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":default:this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,a)=>{!t&&s&&(s.body=a,s.statusCode=s.status?s.status:s.statusCode,s.status=s.statusCode),e(t,s,a)});break;case"Quantumult X":this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:a,headers:r,body:i,bodyBytes:o}=t;e(null,{status:s,statusCode:a,headers:r,body:i,bodyBytes:o},i,o)},t=>e(t&&t.error||"UndefinedError"));break;case"Node.js":let s=require("iconv-lite");this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:a,statusCode:r,headers:i,rawBody:o}=t,n=s.decode(o,this.encoding);e(null,{status:a,statusCode:r,headers:i,rawBody:o,body:n},n)},t=>{const{message:a,response:r}=t;e(a,r,r&&s.decode(r.rawBody,this.encoding))})}}post(t,e=(()=>{})){const s=t.method?t.method.toLocaleLowerCase():"post";switch(t.body&&t.headers&&!t.headers["Content-Type"]&&!t.headers["content-type"]&&(t.headers["content-type"]="application/x-www-form-urlencoded"),t.headers&&(delete t.headers["Content-Length"],delete t.headers["content-length"]),this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":default:this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient[s](t,(t,s,a)=>{!t&&s&&(s.body=a,s.statusCode=s.status?s.status:s.statusCode,s.status=s.statusCode),e(t,s,a)});break;case"Quantumult X":t.method=s,this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:a,headers:r,body:i,bodyBytes:o}=t;e(null,{status:s,statusCode:a,headers:r,body:i,bodyBytes:o},i,o)},t=>e(t&&t.error||"UndefinedError"));break;case"Node.js":let a=require("iconv-lite");this.initGotEnv(t);const{url:r,...i}=t;this.got[s](r,i).then(t=>{const{statusCode:s,statusCode:r,headers:i,rawBody:o}=t,n=a.decode(o,this.encoding);e(null,{status:s,statusCode:r,headers:i,rawBody:o,body:n},n)},t=>{const{message:s,response:r}=t;e(s,r,r&&a.decode(r.rawBody,this.encoding))})}}time(t,e=null){const s=e?new Date(e):new Date;let a={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in a)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?a[e]:("00"+a[e]).substr((""+a[e]).length)));return t}queryStr(t){let e="";for(const s in t){let a=t[s];null!=a&&""!==a&&("object"==typeof a&&(a=JSON.stringify(a)),e+=`${s}=${a}&`)}return e=e.substring(0,e.length-1),e}msg(e=t,s="",a="",r){const i=t=>{switch(typeof t){case void 0:return t;case"string":switch(this.getEnv()){case"Surge":case"Stash":default:return{url:t};case"Loon":case"Shadowrocket":return t;case"Quantumult X":return{"open-url":t};case"Node.js":return}case"object":switch(this.getEnv()){case"Surge":case"Stash":case"Shadowrocket":default:{let e=t.url||t.openUrl||t["open-url"];return{url:e}}case"Loon":{let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}case"Quantumult X":{let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl,a=t["update-pasteboard"]||t.updatePasteboard;return{"open-url":e,"media-url":s,"update-pasteboard":a}}case"Node.js":return}default:return}};if(!this.isMute)switch(this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":default:$notification.post(e,s,a,i(r));break;case"Quantumult X":$notify(e,s,a,i(r));break;case"Node.js":}if(!this.isMuteLog){let t=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];t.push(e),s&&t.push(s),a&&t.push(a),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){switch(this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":case"Quantumult X":default:this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t);break;case"Node.js":this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack)}}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;switch(this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":case"Quantumult X":default:$done(t);break;case"Node.js":process.exit(1)}}}(t,e)} + +// https://github.com/DualSubs/URL/blob/main/URLs.embedded.min.js +function URLs(s){return new class{constructor(s=[]){this.name="URL v1.0.2",this.opts=s,this.json={scheme:"",host:"",path:"",params:{}}}parse(s){let t=s.match(/(?.+):\/\/(?[^/]+)\/?(?[^?]+)?\??(?.*)?/)?.groups??null;return t?.path||(t.path=""),t?.params&&(t.params=Object.fromEntries(t.params.split("&").map((s=>s.split("="))))),t}stringify(s=this.json){return s?.params?s.scheme+"://"+s.host+"/"+s.path+"?"+Object.entries(s.params).map((s=>s.join("="))).join("&"):s.scheme+"://"+s.host+"/"+s.path}}(s)} + +/** + * Get Environment Variables + * @link https://github.com/VirgilClyne/VirgilClyne/blob/main/function/getENV/getENV.min.js + * @author VirgilClyne + * @param {String} t - Persistent Store Key + * @param {String} e - Platform Name + * @param {Object} n - Default Database + * @return {Object} { Settings, Caches, Configs } + */ +function getENV(t,e,n){let i=$.getjson(t,n),s={};if("undefined"!=typeof $argument&&Boolean($argument)){let t=Object.fromEntries($argument.split("&").map((t=>t.split("="))));for(let e in t)l(s,e,t[e])}let g={...n?.Default?.Settings,...n?.[e]?.Settings,...i?.[e]?.Settings,...s},f={...n?.Default?.Configs,...n?.[e]?.Configs,...i?.[e]?.Configs},o=i?.[e]?.Caches||{};return"string"==typeof o&&(o=JSON.parse(o)),{Settings:g,Caches:o,Configs:f};function l(t,e,n){e.split(".").reduce(((t,i,s)=>t[i]=e.split(".").length===++s?n:t[i]||{}),t)}} +