commit 14ae810d4c3c97109fc302281985a149036eec14 Author: Riley Smith Date: Wed Jan 19 13:31:40 2022 -0800 initial commit diff --git a/META-INF/cose.manifest b/META-INF/cose.manifest new file mode 100644 index 0000000..1cae1ad --- /dev/null +++ b/META-INF/cose.manifest @@ -0,0 +1,142 @@ +Manifest-Version: 1.0 + +Name: manifest.json +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: QyOWplGk05hY8yqOckI5ow3flts= +SHA256-Digest: YsavbsFOHi+AXVSbguQu0Tv60yoFhK9W3mW++ablOII= + +Name: background.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: otZGFtDhcnbfdUJOCjW9i1NYPO0= +SHA256-Digest: mgVRfmNzMoxvuLndSlKK4AkCWDabpbekleOV++9cWtU= + +Name: index-6137f488.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: rNamLTYc/X4gd/dLBlk300AQOW8= +SHA256-Digest: S33prVTiy5xonbBTGTEKPY1v+Lb84anybWbye+zq6wE= + +Name: background.injected-af36b849.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: UF0lgn7oKe72Bjg/lBEwzH4Umis= +SHA256-Digest: NTFIqjrprPiv/JKI7ppnvr3q1Ibt8C/IGbLwkr3nHNk= + +Name: get_stream_details-b6177000.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: yCTRLEgpVeUuVBx6nRlIZGc/FkA= +SHA256-Digest: QzA+2ffC9lOLR9vXjdJYGXg12fQY0Fo5ga6Na4muGqU= + +Name: parse_token.util-ed270559.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: IBgALOyVpV5c2qndWHw3xIwYD8o= +SHA256-Digest: EVxzphZ3DjnCxgg69Bb+Cb6qU+IQuSD6dp93AIhNWZg= + +Name: fetch_youtube-71c76849.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: 42eBw2OqRR68eu8r/SPuKyFKaOQ= +SHA256-Digest: MRh597WCWZkT9t03IVvwdcOZZmjMuu7K4soQU/T2a/0= + +Name: router.interface-6cdbc015.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: W9ch3UrWE93U87O7CGQLo4Zn1O8= +SHA256-Digest: icJArSO2T+nG5wNcv9j54PPcb7/4hrTvQgkyxvoww74= + +Name: style-inject.es-a0e1a0ba.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: syuFaCktG1wUUxfCChPrKvOC3Po= +SHA256-Digest: KVO81P8lHSZ+7NgTK9REh7A7CNjl/cZWUzBQSWLW8GQ= + +Name: storage-a8ac7bd3.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: 1fGdHT6DYLkzUYCSGdpONdCNjhA= +SHA256-Digest: wJ4DkoJ6fjrH7bUjQj26JLD8N87etKl9t8IFYffGfRg= + +Name: connectRuntime-a699491c.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: LVD3EDxHZoyuVOD0Gx7nbbwyjmQ= +SHA256-Digest: AXPMWmaye4YgwkyD83k9SFZRtlk+iG8hfXSlk1pBJ5U= + +Name: background.content-5f02aba1.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: pr0Fwt3L3YF+gW2/f1rMEthMD3c= +SHA256-Digest: QWplWRax1J1pkq64mM1eTeDg5Djv/CtiLJoIYlrZSI0= + +Name: inject_script.util-c1ec59e3.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: A1nesjjyxjUtFgzMB/LrqVTxYvA= +SHA256-Digest: v9JV86okMb2y8UCyST10ZJmZi28egw6Fpua+HOdpAKU= + +Name: when_ready.util-91474a6b.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: vGtvPLCiUbrZ0wSC14aVb5FkecQ= +SHA256-Digest: 9Cb+zjS00dSy+O5ABVzMB+qM/OAaHOzrkBfRtVGfw2o= + +Name: popup/index.html +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: N1UM8u9cukLAr+I9D9YzWiqL4bM= +SHA256-Digest: 9CNJMH1v+j2WlTe+sIo78TZ6LuVLab2QIwGtrMhSFLw= + +Name: popup/index.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: X/+QqwkoQ/2LSAmw6IojRy+ZFEA= +SHA256-Digest: ELssVW8zEux25qpRliKg44b0YVg8g8MKJ+rSvVpZnQM= + +Name: assets/icon16.png +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: 5fHxvDGOaVFjrooikbv1hD0zJ1o= +SHA256-Digest: fUCcukwVtnuEm0RLro1kBByeqg7y9ZtacV/EJOGab2w= + +Name: assets/icon48.png +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: zKUR+hdJsV76zopW+ANvI6Ib91E= +SHA256-Digest: 3RNu1SPtiNbK9DlSeRuro+r8vQ3e1vsKAFMQs0x52N0= + +Name: assets/icon128.png +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: tsWw4BHONlffMdl0Sm7UzLWYW/k= +SHA256-Digest: DQq7VbY0l32ewC/MJKwsPdqYPkgFkr4GywJe2TdkV9M= + +Name: assets/background-c101863b.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: KHjGawagtvVDH7ef9CJ2qRQNcDI= +SHA256-Digest: QvnXfM33XTrJj0j8jRLvo3EvZPO0dFsitpnYG4kbTyM= + +Name: assets/index-8c52b575.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: Un7dBvBb46qfc84r8NKcsv7452c= +SHA256-Digest: 4f5WbJ3/wfSqwD74LR9j34sJAkJ0MwSzpDYnDcpzG60= + +Name: assets/index-b14d09b0.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: JsUIKULUiNrjUOqMBtDTLpU9Re4= +SHA256-Digest: 5TgWk/SxFjsHUhykKvheafN02qvQDgwKTIZ9+1R2UrY= + +Name: assets/index-26a612d9.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: rUTqX3fuW2B6+zOTl6zBwkPo41s= +SHA256-Digest: SWQ0c104tRKLaUEOp9jtdl1bKuDYXQQNNXxQjdw6wJ4= + +Name: content/youtube/inject.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: Ov5ue5JIapXyBOzbveEVoBNFPXk= +SHA256-Digest: FOL1i7Z8U1fU66AAbV3F2sSWGlMgSWfSNUAQdP8CgnM= + +Name: content/youtube/index.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: FzEoDMTpvO6RgnXhR7dbrHb9EuU= +SHA256-Digest: uDoKZjRVQJc+v2MjqjIFM5sVrXufOPcRD+BRlXk2Wxg= + +Name: content/twitch/inject.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: 7NMc9FYcdiJ+XH27GauS1qIRsac= +SHA256-Digest: SHAgW6ZzT6DnrZMj+fBld3X/GcvpeydsH+zP+JgK+jw= + +Name: content/twitch/index.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: 0OlsTi3u80Ji/nlfE/jDs/H3BKQ= +SHA256-Digest: 1UDKMJwQ7k23j1hOxDrq5Mbt3uiLKSfmLQ0lHXDPe54= + +Name: content/mogultv/index.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: SM+VJXBfLoE8CIUeV9asO1rzKd0= +SHA256-Digest: tAOufek6iJjCxZ5pmi9oNsTJl9EeiQppgYLc+9yq19s= + diff --git a/META-INF/cose.sig b/META-INF/cose.sig new file mode 100644 index 0000000..72cb0fc Binary files /dev/null and b/META-INF/cose.sig differ diff --git a/META-INF/manifest.mf b/META-INF/manifest.mf new file mode 100644 index 0000000..5396974 --- /dev/null +++ b/META-INF/manifest.mf @@ -0,0 +1,152 @@ +Manifest-Version: 1.0 + +Name: manifest.json +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: QyOWplGk05hY8yqOckI5ow3flts= +SHA256-Digest: YsavbsFOHi+AXVSbguQu0Tv60yoFhK9W3mW++ablOII= + +Name: background.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: otZGFtDhcnbfdUJOCjW9i1NYPO0= +SHA256-Digest: mgVRfmNzMoxvuLndSlKK4AkCWDabpbekleOV++9cWtU= + +Name: index-6137f488.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: rNamLTYc/X4gd/dLBlk300AQOW8= +SHA256-Digest: S33prVTiy5xonbBTGTEKPY1v+Lb84anybWbye+zq6wE= + +Name: background.injected-af36b849.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: UF0lgn7oKe72Bjg/lBEwzH4Umis= +SHA256-Digest: NTFIqjrprPiv/JKI7ppnvr3q1Ibt8C/IGbLwkr3nHNk= + +Name: get_stream_details-b6177000.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: yCTRLEgpVeUuVBx6nRlIZGc/FkA= +SHA256-Digest: QzA+2ffC9lOLR9vXjdJYGXg12fQY0Fo5ga6Na4muGqU= + +Name: parse_token.util-ed270559.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: IBgALOyVpV5c2qndWHw3xIwYD8o= +SHA256-Digest: EVxzphZ3DjnCxgg69Bb+Cb6qU+IQuSD6dp93AIhNWZg= + +Name: fetch_youtube-71c76849.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: 42eBw2OqRR68eu8r/SPuKyFKaOQ= +SHA256-Digest: MRh597WCWZkT9t03IVvwdcOZZmjMuu7K4soQU/T2a/0= + +Name: router.interface-6cdbc015.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: W9ch3UrWE93U87O7CGQLo4Zn1O8= +SHA256-Digest: icJArSO2T+nG5wNcv9j54PPcb7/4hrTvQgkyxvoww74= + +Name: style-inject.es-a0e1a0ba.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: syuFaCktG1wUUxfCChPrKvOC3Po= +SHA256-Digest: KVO81P8lHSZ+7NgTK9REh7A7CNjl/cZWUzBQSWLW8GQ= + +Name: storage-a8ac7bd3.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: 1fGdHT6DYLkzUYCSGdpONdCNjhA= +SHA256-Digest: wJ4DkoJ6fjrH7bUjQj26JLD8N87etKl9t8IFYffGfRg= + +Name: connectRuntime-a699491c.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: LVD3EDxHZoyuVOD0Gx7nbbwyjmQ= +SHA256-Digest: AXPMWmaye4YgwkyD83k9SFZRtlk+iG8hfXSlk1pBJ5U= + +Name: background.content-5f02aba1.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: pr0Fwt3L3YF+gW2/f1rMEthMD3c= +SHA256-Digest: QWplWRax1J1pkq64mM1eTeDg5Djv/CtiLJoIYlrZSI0= + +Name: inject_script.util-c1ec59e3.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: A1nesjjyxjUtFgzMB/LrqVTxYvA= +SHA256-Digest: v9JV86okMb2y8UCyST10ZJmZi28egw6Fpua+HOdpAKU= + +Name: when_ready.util-91474a6b.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: vGtvPLCiUbrZ0wSC14aVb5FkecQ= +SHA256-Digest: 9Cb+zjS00dSy+O5ABVzMB+qM/OAaHOzrkBfRtVGfw2o= + +Name: popup/index.html +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: N1UM8u9cukLAr+I9D9YzWiqL4bM= +SHA256-Digest: 9CNJMH1v+j2WlTe+sIo78TZ6LuVLab2QIwGtrMhSFLw= + +Name: popup/index.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: X/+QqwkoQ/2LSAmw6IojRy+ZFEA= +SHA256-Digest: ELssVW8zEux25qpRliKg44b0YVg8g8MKJ+rSvVpZnQM= + +Name: assets/icon16.png +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: 5fHxvDGOaVFjrooikbv1hD0zJ1o= +SHA256-Digest: fUCcukwVtnuEm0RLro1kBByeqg7y9ZtacV/EJOGab2w= + +Name: assets/icon48.png +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: zKUR+hdJsV76zopW+ANvI6Ib91E= +SHA256-Digest: 3RNu1SPtiNbK9DlSeRuro+r8vQ3e1vsKAFMQs0x52N0= + +Name: assets/icon128.png +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: tsWw4BHONlffMdl0Sm7UzLWYW/k= +SHA256-Digest: DQq7VbY0l32ewC/MJKwsPdqYPkgFkr4GywJe2TdkV9M= + +Name: assets/background-c101863b.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: KHjGawagtvVDH7ef9CJ2qRQNcDI= +SHA256-Digest: QvnXfM33XTrJj0j8jRLvo3EvZPO0dFsitpnYG4kbTyM= + +Name: assets/index-8c52b575.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: Un7dBvBb46qfc84r8NKcsv7452c= +SHA256-Digest: 4f5WbJ3/wfSqwD74LR9j34sJAkJ0MwSzpDYnDcpzG60= + +Name: assets/index-b14d09b0.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: JsUIKULUiNrjUOqMBtDTLpU9Re4= +SHA256-Digest: 5TgWk/SxFjsHUhykKvheafN02qvQDgwKTIZ9+1R2UrY= + +Name: assets/index-26a612d9.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: rUTqX3fuW2B6+zOTl6zBwkPo41s= +SHA256-Digest: SWQ0c104tRKLaUEOp9jtdl1bKuDYXQQNNXxQjdw6wJ4= + +Name: content/youtube/inject.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: Ov5ue5JIapXyBOzbveEVoBNFPXk= +SHA256-Digest: FOL1i7Z8U1fU66AAbV3F2sSWGlMgSWfSNUAQdP8CgnM= + +Name: content/youtube/index.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: FzEoDMTpvO6RgnXhR7dbrHb9EuU= +SHA256-Digest: uDoKZjRVQJc+v2MjqjIFM5sVrXufOPcRD+BRlXk2Wxg= + +Name: content/twitch/inject.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: 7NMc9FYcdiJ+XH27GauS1qIRsac= +SHA256-Digest: SHAgW6ZzT6DnrZMj+fBld3X/GcvpeydsH+zP+JgK+jw= + +Name: content/twitch/index.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: 0OlsTi3u80Ji/nlfE/jDs/H3BKQ= +SHA256-Digest: 1UDKMJwQ7k23j1hOxDrq5Mbt3uiLKSfmLQ0lHXDPe54= + +Name: content/mogultv/index.js +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: SM+VJXBfLoE8CIUeV9asO1rzKd0= +SHA256-Digest: tAOufek6iJjCxZ5pmi9oNsTJl9EeiQppgYLc+9yq19s= + +Name: META-INF/cose.manifest +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: JbBDgY4Auec9tEuvS6VrbtqtU88= +SHA256-Digest: TnnqxR++CyBRAEwdlIwvhgX7w7TJqfoi16AKWXm6nFM= + +Name: META-INF/cose.sig +Digest-Algorithms: SHA1 SHA256 +SHA1-Digest: aq3V7SWNxTjUOvac4nR0ASzSuCo= +SHA256-Digest: NjaNWpbF0miRPZBdCYp2gIlbe0x6ekUrgeZX3GGkUK4= + diff --git a/META-INF/mozilla.rsa b/META-INF/mozilla.rsa new file mode 100644 index 0000000..9bb1866 Binary files /dev/null and b/META-INF/mozilla.rsa differ diff --git a/META-INF/mozilla.sf b/META-INF/mozilla.sf new file mode 100644 index 0000000..d58c0ef --- /dev/null +++ b/META-INF/mozilla.sf @@ -0,0 +1,4 @@ +Signature-Version: 1.0 +SHA1-Digest-Manifest: JvgRKeFOOFxt5PuYl6SWkpcmiRw= +SHA256-Digest-Manifest: RxJHimH6MUnrcxmytp7w/FtE2hPteHedAiMOwT1Gzow= + diff --git a/assets/background-c101863b.js b/assets/background-c101863b.js new file mode 100644 index 0000000..ac94ef9 --- /dev/null +++ b/assets/background-c101863b.js @@ -0,0 +1,154 @@ +(function () { + 'use strict'; + + function captureEvents(events) { + const captured = events.map(captureEvent); + + return () => captured.forEach((t) => t()) + + function captureEvent(event) { + let isCapturePhase = true; + + // eslint-disable-next-line @typescript-eslint/ban-types + const callbacks = new Map(); + const eventArgs = new Set(); + + // This is the only listener for the native event + event.addListener(handleEvent); + + function handleEvent(...args) { + if (isCapturePhase) { + // This is before dynamic import completes + eventArgs.add(args); + + if (typeof args[2] === 'function') { + // During capture phase all messages are async + return true + } else { + // Sync messages or some other event + return false + } + } else { + // The callbacks determine the listener return value + return callListeners(...args) + } + } + + // Called when dynamic import is complete + // and when subsequent events fire + function callListeners(...args) { + let isAsyncCallback = false; + callbacks.forEach((options, cb) => { + // A callback error should not affect the other callbacks + try { + isAsyncCallback = cb(...args) || isAsyncCallback; + } catch (error) { + console.error(error); + } + }); + + if (!isAsyncCallback && typeof args[2] === 'function') { + // We made this an async message callback during capture phase + // when the function handleEvent returned true + // so we are responsible to call sendResponse + // If the callbacks are sync message callbacks + // the sendMessage callback on the other side + // resolves with no arguments (this is the same behavior) + args[2](); + } + + // Support events after import is complete + return isAsyncCallback + } + + // This function will trigger this Event with our stored args + function triggerEvents() { + // Fire each event for this Event + eventArgs.forEach((args) => { + callListeners(...args); + }); + + // Dynamic import is complete + isCapturePhase = false; + // Don't need these anymore + eventArgs.clear(); + } + + // All future listeners are handled by our code + event.addListener = function addListener(cb, ...options) { + callbacks.set(cb, options); + }; + + event.hasListeners = function hasListeners() { + return callbacks.size > 0 + }; + + event.hasListener = function hasListener(cb) { + return callbacks.has(cb) + }; + + event.removeListener = function removeListener(cb) { + callbacks.delete(cb); + }; + + event.__isCapturedEvent = true; + + return triggerEvents + } + } + + function delay(ms) { + return new Promise((resolve) => { + setTimeout(resolve, ms); + }) + } + + /** + * Get matches from an object of nested objects + * + * @export + * @template T Type of matches + * @param {*} object Parent object to search + * @param {(x: any) => boolean} pred A predicate function that will receive each property value of an object + * @param {string[]} excludeKeys Exclude a property if the key exactly matches + * @returns {T[]} The matched values from the parent object + */ + function getDeepMatches(object, pred, excludeKeys) { + const keys = typeof object === 'object' && object ? Object.keys(object) : []; + + return keys.length + ? keys + .filter((key) => !excludeKeys.includes(key)) + .reduce((r, key) => { + const target = object[key]; + + if (target && pred(target)) { + return [...r, target] + } else { + return [...r, ...getDeepMatches(target, pred, excludeKeys)] + } + }, [] ) + : [] + } + + const importPath = /*@__PURE__*/JSON.parse('"../background.js"'); + const delayLength = /*@__PURE__*/JSON.parse('0'); + const excludedPaths = /*@__PURE__*/JSON.parse('["extension"]'); + + const events = getDeepMatches( + chrome, + (x) => typeof x === 'object' && 'addListener' in x, + // The webRequest API is not compatible with event pages + // TODO: this can be removed + // if we stop using this wrapper with "webRequest" permission + excludedPaths.concat(['webRequest']), + ); + const triggerEvents = captureEvents(events); + + import(importPath).then(async () => { + if (delayLength) await delay(delayLength); + + triggerEvents(); + }); + +}()); diff --git a/assets/icon128.png b/assets/icon128.png new file mode 100644 index 0000000..16fcf15 Binary files /dev/null and b/assets/icon128.png differ diff --git a/assets/icon16.png b/assets/icon16.png new file mode 100644 index 0000000..3437534 Binary files /dev/null and b/assets/icon16.png differ diff --git a/assets/icon48.png b/assets/icon48.png new file mode 100644 index 0000000..988865c Binary files /dev/null and b/assets/icon48.png differ diff --git a/assets/index-26a612d9.js b/assets/index-26a612d9.js new file mode 100644 index 0000000..87ec2b4 --- /dev/null +++ b/assets/index-26a612d9.js @@ -0,0 +1,8 @@ +(function () { + 'use strict'; + + const importPath = /*@__PURE__*/JSON.parse('"../content/mogultv/index.js"'); + + import(chrome.runtime.getURL(importPath)); + +}()); diff --git a/assets/index-8c52b575.js b/assets/index-8c52b575.js new file mode 100644 index 0000000..0b25691 --- /dev/null +++ b/assets/index-8c52b575.js @@ -0,0 +1,8 @@ +(function () { + 'use strict'; + + const importPath = /*@__PURE__*/JSON.parse('"../content/twitch/index.js"'); + + import(chrome.runtime.getURL(importPath)); + +}()); diff --git a/assets/index-b14d09b0.js b/assets/index-b14d09b0.js new file mode 100644 index 0000000..21dff17 --- /dev/null +++ b/assets/index-b14d09b0.js @@ -0,0 +1,8 @@ +(function () { + 'use strict'; + + const importPath = /*@__PURE__*/JSON.parse('"../content/youtube/index.js"'); + + import(chrome.runtime.getURL(importPath)); + +}()); diff --git a/background.content-5f02aba1.js b/background.content-5f02aba1.js new file mode 100644 index 0000000..0e674b3 --- /dev/null +++ b/background.content-5f02aba1.js @@ -0,0 +1,7 @@ +import { t } from './index-6137f488.js'; +import { s, m } from './storage-a8ac7bd3.js'; +import { n } from './connectRuntime-a699491c.js'; + +class o extends t{constructor(){super(),this.fetch=async(t,e)=>{const s=Math.random().toString();return this.port.postMessage({nonce:s,path:t,body:e}),new Promise((t=>{const e=a=>{a.meta.nonce===s&&(this.port.onMessage.removeListener(e),t(a));};this.port.onMessage.addListener(e);}))},this.extensionId=s.runtime.id,this.port=this.connectToBackground(),this.port.onMessage.addListener(this.onMessage),window.addEventListener("message",(async t=>{var e,a,o;if(t.source!==window||(null===(e=t.data)||void 0===e?void 0:e.id)!==this.extensionId||"response"===(null===(a=t.data)||void 0===a?void 0:a.type))return;let n;switch(null===(o=t.data)||void 0===o?void 0:o.type){case"fetch":n=await this.fetch(t.data.data[0],t.data.data[1]);break;case"storage.get":{const[e,a]=t.data.data.split(".");n=await m[e].get(a);break}case"storage.set":{const[e,a]=t.data.data[0].split(".");n=await m[e].set(a,t.data.data[1]);break}}window.postMessage({id:this.extensionId,nonce:t.data.nonce,type:"response",data:n});}));}connectToBackground(){return n()}async onMessage(t){window.postMessage(t);}} + +export { o }; diff --git a/background.injected-af36b849.js b/background.injected-af36b849.js new file mode 100644 index 0000000..ada3fba --- /dev/null +++ b/background.injected-af36b849.js @@ -0,0 +1,5 @@ +import { t } from './index-6137f488.js'; + +class e extends t{constructor(){super(),this.fetch=async(t,e)=>this.sendToContentScript("fetch",[t,e]),this.extensionId=function(){var t;const e=null===(t=document.getElementById("jjdtNVhjLLNiwvfY"))||void 0===t?void 0:t.getAttribute("jjdtNVhjLLNiwvfY");if(!e)throw new Error("Could not resolve extension ID from injected script");return e}(),window.addEventListener("message",(t=>{var e,n;t.source===window&&(null===(e=t.data)||void 0===e?void 0:e.id)===this.extensionId&&"event"===(null===(n=t.data)||void 0===n?void 0:n.type)&&this.onMessage(t.data.data);}));}async onMessage(t){}async getStorage(t){return await this.sendToContentScript("storage.get",t)}async getLiveStorageValue(t,e=(t=>t)){const n={value:e(await this.getStorage(t))},o=window.setInterval((async()=>{n.value=e(await this.getStorage(t));}),1e3);return n.interval=o,n}async setStorage(t,e){return this.sendToContentScript("storage.set",[t,e])}async sendToContentScript(t,e){const n=Math.random().toString();return window.postMessage({id:this.extensionId,nonce:n,type:t,data:e}),new Promise((t=>{const e=o=>{var s,a,i;o.source===window&&(null===(s=o.data)||void 0===s?void 0:s.id)===this.extensionId&&(null===(a=o.data)||void 0===a?void 0:a.nonce)===n&&"response"===(null===(i=o.data)||void 0===i?void 0:i.type)&&(t(o.data.data),window.removeEventListener("message",e));};window.addEventListener("message",e);}))}} + +export { e }; diff --git a/background.js b/background.js new file mode 100644 index 0000000..6179110 --- /dev/null +++ b/background.js @@ -0,0 +1,6 @@ +import { d as dt } from './parse_token.util-ed270559.js'; +import { e } from './fetch_youtube-71c76849.js'; +import { n } from './router.interface-6cdbc015.js'; +import { s, m } from './storage-a8ac7bd3.js'; + +class o extends Error{constructor(t,e){super(e),this.code=t,this.message=e;}}const r=(t,e={},a)=>({body:e,meta:{isSuccess:!1,code:t,nonce:a}});let i;const c=t=>s.cookies.getAll({url:t}).then((t=>t.filter((t=>!t.name.startsWith("ST-"))).map((t=>[t.name,t.value])))).then(Object.fromEntries),u={"@me":async()=>{const t=await m.auth.get("token");return dt(t)},logout:async()=>{const t=await m.auth.get("token");await fetch("https://v2.mogultv.org/auth/youtube",{method:"DELETE",headers:{Authorization:`Bearer ${t}`}}),await m.auth.remove("token");},login:async t=>{const a=await c(t.href),s=await fetch("https://v2.mogultv.org/auth/youtube",{method:"POST",body:JSON.stringify(Object.assign(Object.assign({},t),{cookies:a}))});if(200!==s.status)return null;const{jwt:n}=await s.json();return await m.auth.set("token",n),n},link:async t=>{const a=await m.auth.get("token"),n=await fetch(`https://v2.mogultv.org/link/${t}`,{method:"GET",headers:{Authorization:`Bearer ${a}`}});if(200!==n.status)return;const o=await n.text();await chrome.cookies.set({url:"https://v2.mogultv.org",name:"Authorization",value:a,httpOnly:!0,path:`/link/${t}/callback`,expirationDate:Math.floor(Date.now()/1e3)+3600}),await chrome.windows.create({url:o,focused:!0,type:"popup",width:850,height:800});const r=await new Promise((t=>{i=t;}));return m.auth.set("token",r),dt(r)},"finish-link":async(t,e)=>{var s$1,n;(null===(s$1=e.sender.tab)||void 0===s$1?void 0:s$1.id)&&s.tabs.remove(null===(n=e.sender.tab)||void 0===n?void 0:n.id),null==i||i(t);},"disconnect-link":async t=>{const a=await m.auth.get("token"),n=await fetch(`https://v2.mogultv.org/link/${t}`,{method:"DELETE",headers:{Authorization:`Bearer ${a}`}});if(200!==n.status)return;const{jwt:o}=await n.json();return await m.auth.set("token",o),dt(o)}};const l=t=>async()=>{var a,s;const n=await m.cache.get(t);let o;if(n&&n.expiresAt>Date.now())o=n.value;else {const n=await fetch("https://v2.mogultv.org"+t),r=Number(n.headers.get("age")),i=Number((null===(s=null===(a=n.headers.get("cache-control"))||void 0===a?void 0:a.match(/max-age=(\d+)/))||void 0===s?void 0:s[1])||300)-r,c=Date.now()+1e3*i;o=await n.json(),await m.cache.set(t,{expiresAt:c,value:o});}return o},h={youtube:{"get-stream":async()=>{const t=await m.cache.get("get-stream");let a;if(t&&t.expiresAt>Date.now())a=t.value;else {const t=Date.now()+6e4;a=await async function(){try{const t=await fetch("https://youtube.com/channel/UCrPseYLGpNygVi34QpGNqpA/live");if(200!==t.status)return null;const e=await t.text(),a=/(?:window\s*\[\s*["']ytInitialData["']\s*\]|ytInitialData)\s*=\s*({.+?})\s*;/.exec(e);if(a){const t=JSON.parse(a[1]),e=t.currentVideoEndpoint.watchEndpoint.videoId,s=t.contents.twoColumnWatchNextResults.results.results.contents[0].videoPrimaryInfoRenderer,n=t.contents.twoColumnWatchNextResults.results.results.contents[1].videoSecondaryInfoRenderer.owner.videoOwnerRenderer.thumbnail.thumbnails[0].url,o=s.viewCount.videoViewCountRenderer.viewCount.runs.find((t=>/^[0-9,]+$/.test(t.text))).text;return {title:s.title.runs[0].text,viewersCount:parseInt(o.replace(/,/g,"")),previewImageURL:`https://i.ytimg.com/vi/${e}/mqdefault.jpg`,profileImageURL:n}}}catch(t){console.warn(t);}return null}(),await m.cache.set("get-stream",{expiresAt:t,value:a});}return a},"get-user":async t=>{const e$1=await c(t.href),a=await e(Object.assign(Object.assign({},t),{cookies:e$1}));if(!a.success)throw new o(a.code,a.message);return a.data}},gateway:{users:l("/gateway/users"),emotes:l("/gateway/emotes"),badges:l("/gateway/badges"),"set-settings":async t=>{const a=await m.auth.get("token"),n=await fetch("https://v2.mogultv.org/gateway/settings",{method:"PUT",headers:{Authorization:`Bearer ${a}`},body:JSON.stringify(t)}),{jwt:o}=await n.json();return m.auth.set("token",o),dt(o)}},auth:u,extension:{popup:()=>s.action.openPopup(),"open-tab":async t=>{await s.tabs.create({url:t});}}},d=async(e,a)=>{var s;const{path:n$1,body:o}=e;if(!n$1)return;e.meta?e.meta.sender=a:e.meta={sender:a,isPort:!1},e.meta.isPort||(e.meta.isPort=!1);const i=t=>{},c=n$1.split("/").filter(Boolean),u=c[0];if(!(u in h)){return r(n.NotFound,void 0,e.nonce)}const l=h[u][c.slice(1).join("/")];if(!l){return r(n.NotFound,void 0,e.nonce)}try{const a=((e,a)=>({body:e,meta:{isSuccess:!0,code:n.Success,nonce:a}}))(await l(o,e.meta),e.nonce);return i(a),a}catch(a){const n$1=a;return r(null!==(s=n$1.code)&&void 0!==s?s:n.Unknown,{message:n$1.message},e.nonce)}};s.runtime.onConnect.addListener((t=>{const e=t.sender;e&&t.onMessage.addListener((async a=>{a.meta={isPort:!0};const s=await d(a,e);t.postMessage(s);}));})),s.runtime.onMessage.addListener(d); diff --git a/connectRuntime-a699491c.js b/connectRuntime-a699491c.js new file mode 100644 index 0000000..2982333 --- /dev/null +++ b/connectRuntime-a699491c.js @@ -0,0 +1,5 @@ +import { s } from './storage-a8ac7bd3.js'; + +const n=n=>{let s$1;const t=()=>{s$1=s.runtime.connect(n),s$1.onDisconnect.addListener((()=>{t();}));};function o(e){return {addListener:n=>s$1[e].addListener(n),removeListener:n=>s$1[e].removeListener(n),hasListener:n=>s$1[e].hasListener(n),hasListeners:()=>s$1[e].hasListeners()}}t();const r={name:(null==n?void 0:n.name)||"",disconnect:()=>s$1.disconnect(),onDisconnect:o("onDisconnect"),onMessage:o("onMessage"),postMessage:e=>s$1.postMessage(e)};return Object.defineProperty(r,"name",{get:()=>s$1.name}),r}; + +export { n }; diff --git a/content/mogultv/index.js b/content/mogultv/index.js new file mode 100644 index 0000000..106f95b --- /dev/null +++ b/content/mogultv/index.js @@ -0,0 +1,7 @@ +import '../../index-6137f488.js'; +import '../../storage-a8ac7bd3.js'; +import '../../connectRuntime-a699491c.js'; +import { o } from '../../background.content-5f02aba1.js'; +import { e } from '../../when_ready.util-91474a6b.js'; + +e((async()=>{var n;const e=new o,o$1=null===(n=document.getElementById("jwt-response"))||void 0===n?void 0:n.textContent;o$1&&e.fetch("/auth/finish-link",o$1);})); diff --git a/content/twitch/index.js b/content/twitch/index.js new file mode 100644 index 0000000..94b30f0 --- /dev/null +++ b/content/twitch/index.js @@ -0,0 +1,7 @@ +import '../../index-6137f488.js'; +import '../../storage-a8ac7bd3.js'; +import '../../connectRuntime-a699491c.js'; +import { o } from '../../background.content-5f02aba1.js'; +import { e } from '../../inject_script.util-c1ec59e3.js'; + +new o,e("content/twitch/inject.js"); diff --git a/content/twitch/inject.js b/content/twitch/inject.js new file mode 100644 index 0000000..fb2784d --- /dev/null +++ b/content/twitch/inject.js @@ -0,0 +1,5 @@ +import '../../index-6137f488.js'; +import { e } from '../../background.injected-af36b849.js'; +import { s } from '../../router.interface-6cdbc015.js'; + +!async function(e){async function a(e){if(Array.isArray(e))for(const t of e)await n(t);return e}async function n(a){var n,i,r;try{switch(a.extensions.operationName){case"FollowingLive_CurrentUser":{const n=a.data,i=await e.fetch("/youtube/get-stream");s(i)&&i.body&&(n.currentUser.followedLiveUsers.edges.push(function({title:e,viewersCount:t,profileImageURL:a,previewImageURL:n}){return {__typename:"FollowedLiveUserEdge",cursor:"LTE=",node:{__typename:"User",id:"40934651",displayName:"ludwig",login:"ludwig",profileImageURL:a,stream:{broadcaster:{id:"40934651",primaryColorHex:"00FFE2",__typename:"User",channel:{id:"40934651",self:{isAuthorized:!0,__typename:"ChannelSelfEdge"},__typename:"Channel"}},id:"-1",previewImageURL:n,game:{id:"-1",name:"YouTube",displayName:"YouTube",boxArtURL:"https://i.postimg.cc/NjQvCPh2/image.png",__typename:"Game"},restriction:null,tags:[],title:e,type:"live",viewersCount:t,__typename:"Stream"}}}}(i.body)),n.currentUser.followedLiveUsers.edges.sort(((e,t)=>t.node.stream.viewersCount-e.node.stream.viewersCount)));break}case"PersonalSections":{const n=a.data.personalSections.find((e=>"FOLLOWED_SECTION"===e.type));if(n){const a=await e.fetch("/youtube/get-stream");s(a)&&a.body&&(n.items.push(function({title:e,viewersCount:t,profileImageURL:a,previewImageURL:n}){return {trackingID:"1bb8ab4b-aed2-4f25-a750-c295d57e6a95",promotionsCampaignID:"",user:{id:"40934651",login:"ludwig",displayName:"ludwig",profileImageURL:a,primaryColorHex:"00FFE2",broadcastSettings:{id:"40934651",title:e,__typename:"BroadcastSettings"},channel:{id:"40934651",creatorAnniversaries:{id:"40934651",isAnniversary:!1,__typename:"CreatorAnniversaries"},__typename:"Channel"},__typename:"User"},label:"NONE",content:{id:"-1",previewImageURL:n,broadcaster:{id:"40934651",broadcastSettings:{id:"40934651",title:e,__typename:"BroadcastSettings"},__typename:"User"},viewersCount:t,self:{canWatch:!0,isRestricted:!1,restrictionType:null,__typename:"StreamSelfConnection"},game:{id:"-1",displayName:"YouTube",name:"YouTube",__typename:"Game"},type:"live",__typename:"Stream"},__typename:"PersonalSectionChannel"}}(a.body)),n.items.sort(((e,t)=>(t.content.viewersCount||0)-(e.content.viewersCount||0))));}break}case"StreamMetadata":{const n=a.data;if("40934651"===n.user.id){const a=await e.fetch("/youtube/get-stream");s(a)&&a.body&&(n.user.lastBroadcast.id="-1",n.user.lastBroadcast.title=a.body.title,n.user.stream={id:"-1",type:"live",createdAt:(new Date).toJSON(),viewersCount:a.body.viewersCount,game:{id:"-1",name:"YouTube",__typename:"Game"},__typename:"Stream"});}break}default:{const o=a.data;if("40934651"===(null===(n=o.user)||void 0===n?void 0:n.id)&&(null===(r=null===(i=o.user)||void 0===i?void 0:i.lastBroadcast)||void 0===r?void 0:r.title)){const a=await e.fetch("/youtube/get-stream");s(a)&&a.body&&(o.user.lastBroadcast.title=a.body.title);}}}}catch(e){}}const i=window.fetch.bind(window);window.fetch=async function(e,t){const n=await i(e,t);try{let t;if(t="string"==typeof e?e:e.url,!t.includes("gql.twitch.tv/gql"))return n;const i=n.text.bind(n),r=n.json.bind(n);n.text=async function(){const e=await i();try{const t=JSON.parse(e);return await a(t),JSON.stringify(t)}catch(t){return e}},n.json=async function(){const e=await r();try{return await a(e),e}catch(t){return e}};}catch(e){return n}return n};}(new e); diff --git a/content/youtube/index.js b/content/youtube/index.js new file mode 100644 index 0000000..69e2d14 --- /dev/null +++ b/content/youtube/index.js @@ -0,0 +1,10 @@ +import '../../index-6137f488.js'; +import { e as e$3 } from '../../get_stream_details-b6177000.js'; +import { e } from '../../style-inject.es-a0e1a0ba.js'; +import { s, m } from '../../storage-a8ac7bd3.js'; +import '../../connectRuntime-a699491c.js'; +import { o as o$1 } from '../../background.content-5f02aba1.js'; +import { e as e$2 } from '../../inject_script.util-c1ec59e3.js'; +import { e as e$1 } from '../../when_ready.util-91474a6b.js'; + +var o="settings-module_ludwigLogo__Wt9ZZ",i="settings-module_ludwigSettingsPopup__Mfv9p";async function c(){const g=await d();let I=document.getElementById("ludwig-settings-popup");g.addEventListener("click",(()=>{I?I.style.display="none"===I.style.display?"block":"none":I=function(){const I=document.createElement("iframe");return I.src=s.runtime.getURL("popup/index.html"),I.id="ludwig-settings-popup",I.className=i,document.body.appendChild(I),window.addEventListener("message",(g=>{g.source===I.contentWindow&&"mogul-tv:close"===g.data&&(I.style.display="none");})),document.addEventListener("keydown",(g=>{"Escape"===g.key&&(I.style.display="none");})),document.addEventListener("click",(A=>{"none"===I.style.display||g.contains(A.target)||I.contains(A.target)||(I.style.display="none");})),I}();}));}function d(){const g=document.getElementById("ludwig-settings-button");if(g)return Promise.resolve(g);const I=document.querySelector("ytd-masthead #end");if(!I)return new Promise((g=>{setTimeout((()=>g(d())),1e3);}));const A=document.createElement("yt-icon-button");A.id="ludwig-settings-button",A.setAttribute("label","Mogul.TV Settings"),A.className="style-scope ytd-masthead";const C=document.createElement("img");return C.src="data:image/png;base64,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WQwIiMSzzDBt4g3i6U3b4LxPHGZFWSU+Jx436YLEj1xXPH7jXHBZ4JlhM52aJw4Ti4U2VtqYFU2NeIo4omo65QsZj1XOW5y1cpU178lfGMrpK8tcpzWMBBaxBAkiFFRRQhk2orTrpFhI0Xncxz/k+iVyKeQqgZFjARVokF0/+B/8nq2Vn5zwkkJxoPPFcT5GgK5doFFznO9jx2mcAMFn4Epv+St1YOaT9FpLixwBfdvAxXVLU/aAyx1g8MmQTdmVgrSEfB54P6NvygL9t0DPmje35jlOH4A0zSp5AxwcAqMFyl73eXd3+9z+7WnO7wefz3K5SrnPGAAAEuFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo3NTM0YTk5NC0xNDIzLTZjNDctYTExNi01ZjUzMWZkYzZkM2UiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ZDhlZDc2NDctZDYzMy00NDczLWI4MWYtY2NiYjRlMzQzMGRkIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZmMzZjY2MTMtODdkZi0yZDRmLWIyNDUtODZiZjc3MWFhODk4IgogICBkYzpmb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iTGludXgiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjM4NDMxNjIxMzU1NDU4IgogICBHSU1QOlZlcnNpb249IjIuMTAuMjgiCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdGVEYXRlPSIyMDIxLTEyLTAyVDAwOjU3OjA2LTA2OjAwIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMS0xMi0wMlQwMTo1MDoyOC0wNjowMCIKICAgeG1wOk1vZGlmeURhdGU9IjIwMjEtMTItMDJUMDE6NTA6MjgtMDY6MDAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmZjM2Y2NjEzLTg3ZGYtMmQ0Zi1iMjQ1LTg2YmY3NzFhYTg5OCIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIzLjAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIxLTEyLTAyVDAwOjU3OjA2LTA2OjAwIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjhhZjc3YWM5LWU3NWMtYWI0Zi05OGY4LWYyMTE4NjY3YjljZCIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIzLjAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIxLTEyLTAyVDAxOjUwOjI4LTA2OjAwIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249ImNvbnZlcnRlZCIKICAgICAgc3RFdnQ6cGFyYW1ldGVycz0iZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZyIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJkZXJpdmVkIgogICAgICBzdEV2dDpwYXJhbWV0ZXJzPSJjb252ZXJ0ZWQgZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZyIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo3YTAxNGEzOC02Y2M4LWFjNDQtOGYyYS0yNDE0NTI1OGJkZjMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMy4wIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMS0xMi0wMlQwMTo1MDoyOC0wNjowMCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo0MDgyMWI4NS03MWU5LTQzYjUtYTEwNi0wY2RhYWZhZjE3YzMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoTGludXgpIgogICAgICBzdEV2dDp3aGVuPSIyMDIxLTEyLTAxVDIzOjUzOjQxLTA4OjAwIi8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICAgPHhtcE1NOkRlcml2ZWRGcm9tCiAgICBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmZjM2Y2NjEzLTg3ZGYtMmQ0Zi1iMjQ1LTg2YmY3NzFhYTg5OCIKICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OGFmNzdhYzktZTc1Yy1hYjRmLTk4ZjgtZjIxMTg2NjdiOWNkIgogICAgc3RSZWY6b3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmZjM2Y2NjEzLTg3ZGYtMmQ0Zi1iMjQ1LTg2YmY3NzFhYTg5OCIvPgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+BKrvTAAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+UMAgc1KQBoSUQAAAgKSURBVGjexVpNjJ1VGX7e853v3rl3Zm4pnbS2pbY4lgZNNMhCKQp1IRVM/YkxjW5csHclGw1popK4IYS4cWlcWV2oUWtUhDTVGEQSYxAVSMEU+nPpgC3tTGfuPe/j4vu55+9Oh2qmJ5lk7vdzz/O+7/P+niuIFr83FK7hbgBHCRwmZD+IDgEQACkgAULQXFOwvabNdQLa3q/e0/Z/QCFQTu4HzzT3gRGBV5T4rQI/7vT47Icf2UIfrwTgnxjuouIJCD5PSof1Bqg3pQioDXDWACUAWwFqhAS0BsUaWCVkAzL87D/vP6MElBhR5Fc0/NrBRwdnEgH08eEHIfgFiNsbDbK+HWq+2ZTt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",C.className="style-scope ytd-masthead "+o,A.appendChild(C),I.prepend(A),Promise.resolve(A)}e(".ytd-masthead.settings-module_ludwigLogo__Wt9ZZ {\n width: var(--yt-icon-button-icon-width);\n}\n\n.settings-module_ludwigSettingsPopup__Mfv9p {\n width: 400px;\n height: 600px;\n position: fixed;\n top: 56px;\n right: 0px;\n z-index: 9999;\n box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 10px 10px rgba(0,0,0,0.22);\n}");async function a(){setInterval((async()=>{await async function(){const g=await m.settings.get("chatStyles"),I=e$3();return g&&I}()?document.body.setAttribute("data-mogul-chat-styles",""):document.body.removeAttribute("data-mogul-chat-styles");}),250);}e('/* Overwrite colors on verified/owner names */\nyt-live-chat-author-chip[is-highlighted] #author-name.owner.yt-live-chat-author-chip,\n#author-name.owner.yt-live-chat-author-chip {\n color: var(--yt-live-chat-author-chip-owner-text-color) !important;\n}\n\nyt-live-chat-author-chip[is-highlighted] #author-name.yt-live-chat-author-chip {\n color: var(--yt-live-chat-author-chip-verified-text-color) !important;\n}\n\n\nbody[data-mogul-chat-styles] #author-photo.yt-live-chat-text-message-renderer {\n\tdisplay: none;\n}\n\nbody[data-mogul-chat-styles] yt-live-chat-text-message-renderer {\n\tmin-height: 24px;\n}\n\nbody[data-mogul-chat-styles] yt-live-chat-author-chip {\n\tdirection: rtl;\n}\n\nbody[data-mogul-chat-styles] yt-live-chat-author-chip::before {\n\tcontent: ":";\n}\n\nbody[data-mogul-chat-styles] #author-name.member.yt-live-chat-author-chip,\n#author-name.moderator.yt-live-chat-author-chip {\n font-weight: 800 !important;\n}\n\nbody[data-mogul-chat-styles] yt-live-chat-author-badge-renderer.yt-live-chat-author-chip {\n margin: 0 4px 0 0 !important;\n}\n\n#message.yt-live-chat-text-message-renderer .emoji.yt-live-chat-text-message-renderer {\n width: auto !important;\n}'),e$1((()=>{const g=null!==document.querySelector("yt-live-chat-app");new o$1,e$2("content/youtube/inject.js"),g?a():c();})); diff --git a/content/youtube/inject.js b/content/youtube/inject.js new file mode 100644 index 0000000..f713d3d --- /dev/null +++ b/content/youtube/inject.js @@ -0,0 +1,16 @@ +import { e } from '../../index-6137f488.js'; +import { e as e$2 } from '../../background.injected-af36b849.js'; +import { n, e as e$4 } from '../../get_stream_details-b6177000.js'; +import { d as dt, t } from '../../parse_token.util-ed270559.js'; +import { e as e$3 } from '../../fetch_youtube-71c76849.js'; +import { s } from '../../router.interface-6cdbc015.js'; +import { e as e$1 } from '../../style-inject.es-a0e1a0ba.js'; + +function u(t){if(!t)return 0;t=t.toLowerCase();const e=/\((.+)\)/.exec(t);if(!e)return 1;const n=e[1].split(/\s/),i=parseInt(n[0]);return isNaN(i)?0:n[1].startsWith("year")?12*parseInt(n[0]):parseInt(n[0])}function d(t,e){const n=e;for(let e=0;et)return n[e-1][1];return n[n.length-1][1]}function l(t,e,n,i){const a=e(t.authorExternalChannelId);!function(t,e){(null==e?void 0:e.a)&&(t.authorName={simpleText:e.a});}(t,a),function(t,e){var n,i;t.authorBadges||(t.authorBadges=[]);for(const a of t.authorBadges){const t=a.liveChatAuthorBadgeRenderer;(null===(n=t.icon)||void 0===n?void 0:n.iconType)?t._mtvType=null===(i=t.icon)||void 0===i?void 0:i.iconType.toLowerCase():t.customThumbnail&&(t._mtvType="member"),"moderator"===t._mtvType&&(delete t.icon,t._mtvType="moderator",t.customThumbnail={thumbnails:[{url:e,width:18,height:18}]});}}(t,i),function(t,e,n){if((null==n?void 0:n.b)&&!(n.b<=0))for(const i of t.authorBadges){const t=i.liveChatAuthorBadgeRenderer;if("member"!==t._mtvType)continue;const a=u(t.tooltip);if(0===a)continue;const o=a+n.b,r=`Member (${o} months)`,s=d(o,e);t.customThumbnail=s,delete t.icon,t.tooltip=r,t.accessibility.accessibilityData.label=r;}}(t,n,a);}const h=/[\s.,?!]/;function f(t){const e=[];let n=0;for(let i=0;ithis.gatewayService.getUserInfo(t)),this.gatewayService.badgeList,"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAABg2lDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV/TiiIVBzuIOGRonSyIijpqFYpQIdQKrTqYXPoFTRqSFBdHwbXg4Mdi1cHFWVcHV0EQ/ABxc3NSdJES/5cUWsR4cNyPd/ced+8AoVFhmhUaAzTdNtPJhJjNrYrdrwgjBGAaMZlZxpwkpeA7vu4R4OtdnGf5n/tz9Kl5iwEBkXiWGaZNvEE8tWkbnPeJI6wkq8TnxKMmXZD4keuKx2+ciy4LPDNiZtLzxBFisdjBSgezkqkRTxJHVU2nfCHrscp5i7NWqbHWPfkLw3l9ZZnrNIeRxCKWIEGEghrKqMBGnFadFAtp2k/4+Idcv0QuhVxlMHIsoAoNsusH/4Pf3VqFiXEvKZwAul4c5yMGdO8CzbrjfB87TvMECD4DV3rbX20AM5+k19ta9Ajo3wYurtuasgdc7gCDT4Zsyq4UpCkUCsD7GX1TDhi4BXrXvN5a+zh9ADLUVeoGODgERoqUve7z7p7O3v490+rvB3pIcqqJKL5aAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH5QwEARQDdqq2HwAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAGkSURBVDjLpdSxS5tBGMfx7+V9JamLGbSQNNAQdBBJhZKWLPkHxKmQEgd9xUFwCRQKHe1cKHSztCCmLyQlkriULu2kSyBQkCCCg0bQCJrhTSUxoW+8DuLRNPqq8aa7hx8f7nk4TpDXDCQfAC+9rTKCt4KctgcEnZKJ/pcYoRmG+oewz21Wdlb4+PvzvxFLvwlJD5vEx+Lomg5A6ahE/nTt/5hXd0Le+98x9WRKnUtHJSYKkxzLalfW5djSaKILOZCHqvZQDLIwMO8MPdOf4h/wq3Or3epAAuIRP6M/MEYMZyjY1zm6SCBC8XlBId+j3wj7wuiui+lcO6PVszxNu4lH93RiFHBrbsK+MAAnjRNnKBVaxq25u+qRQETt7bZNavfL9a2lQstMj08jhHB8idmtLF8b2atvdBUipaTVbqk2K7UKme0MrytvVEa/DWJumhi7c8QfvKD8p0zR/tV1O0FOk7dBblougE+Pl+6FKGijukGtWesZUZBZT5NcT2KdWT0hl8O2AK9ZT8M6xAZjzO8v3PFLkmVBTpsFuQgi2Nu/Ji3QXv0FPBynaffELJkAAAAASUVORK5CYII=");}}class T{constructor(t){this.gatewayService=t;}addTwitchEmotesToMessage(t){return function(t,e){const n=[];for(const i of t.runs)if("string"==typeof i.text){const{text:t}=i;let a=0,o=0;const r=f(t);let s=!1;for(const i of r){const r=e("🌝"===i?"Kappa":i);r&&(s=!0,a>0&&n.push({text:t.substring(o,a)}),n.push({emoji:r}),o=a+i.length),a+=i.length;}s?n.push({text:t.substring(o,a)}):n.push(i);}else if("🌝"===i.emoji.emojiId){const t=e("Kappa");t&&n.push({emoji:t});}else n.push(i);return t.runs=n,t}(t,(t=>this.gatewayService.getEmote(t)))}}class x extends e.exports.EventEmitter{constructor(t){super(),this.backgroundService=t,this.badgeList=[],this.emoteCache=new Map,t.getLiveStorageValue("auth.token",dt).then((t=>this.myUserInfo=t)),this.fetchUserInfo(),this.fetchEmotes(),this.fetchBadges(),setInterval((()=>{this.fetchUserInfo(),this.fetchEmotes(),this.fetchBadges();}),3e5);}async fetchBadges(){const t=await this.backgroundService.fetch("/gateway/badges");if(!s(t))return;const e=t.body.sort(((t,e)=>t.months-e.months));this.badgeList=e.map((t=>[t.months,{thumbnails:[{url:t.url,width:16,height:16}]}])),this.emit("badges",this.badgeList);}async fetchEmotes(){const t=await this.backgroundService.fetch("/gateway/emotes");if(s(t)){this.emoteCache.clear();for(const e of t.body){const t=m(e);t&&this.emoteCache.set(e.name,t);}this.emit("emotes",this.emoteCache);}}async fetchUserInfo(){const t=await this.backgroundService.fetch("/gateway/users");s(t)&&(this.infoCache=new Map(t.body),this.emit("users",this.infoCache));}getSerializedMetadata(t){const e=t.links.find((e=>e.prv===t.prv)),n={a:null==e?void 0:e.name,b:t.meta.sub,c:t.meta.col};return Object.values(n).filter((t=>void 0!==t)).length>0?n:void 0}getUserInfo(t){var e,n,i;if((null===(n=null===(e=this.myUserInfo)||void 0===e?void 0:e.value)||void 0===n?void 0:n.sub)===t){const t=this.getSerializedMetadata(this.myUserInfo.value);if(t)return t}return null===(i=this.infoCache)||void 0===i?void 0:i.get(t)}getEmote(t){var e;return null===(e=this.emoteCache)||void 0===e?void 0:e.get(t)}}async function I(t,n){await customElements.whenDefined(t);const i=customElements.get(t);if(!i)return void console.warn(`Polymer: ${t} not found`);const a=i.prototype[n.functionName];i.prototype[n.functionName]=function(...t){if(n.ludwigOnly&&!e$4())return a.apply(this,t);if(n.type===b.OverrideFunction)try{return n.function.apply(this,t)}catch(t){console.error(JSON.stringify(n)),console.error(t);}if(n.type===b.RunBefore)try{n.function.apply(this,t);}catch(t){console.error(t);}let i=a.apply(this,t);if(n.type===b.RunAfter)try{i=n.function.apply(this,[i]);}catch(t){console.error(t);}return i};}!function(t){t[t.OverrideFunction=0]="OverrideFunction",t[t.RunBefore=1]="RunBefore",t[t.RunAfter=2]="RunAfter";}(b||(b={}));const B=(t,e,{LudwigOnly:n})=>({functionName:t,function:e,ludwigOnly:n||!1,type:b.OverrideFunction}),E=(t,e,{LudwigOnly:n})=>({functionName:t,function:e,ludwigOnly:n||!1,type:b.RunBefore});function C(t,n,i){I("yt-live-chat-item-list-renderer",E("handleAddChatItemAction_",(function(e){e.item.liveChatTextMessageRenderer&&(t.addTwitchEmotesToMessage(e.item.liveChatTextMessageRenderer.message),n.addAliasesToMessage(e.item.liveChatTextMessageRenderer));}),{LudwigOnly:true})),I("yt-live-chat-text-input-field-renderer",((t,e,{LudwigOnly:n})=>({functionName:t,function:e,ludwigOnly:n||!1,type:b.RunAfter}))("calculateLiveChatRichMessageInput_",(function(t){var e;if(!(null==t?void 0:t.textSegments))return t;for(const n of t.textSegments)if(null===(e=n.emojiId)||void 0===e?void 0:e.startsWith("mogultv")){const[,t]=n.emojiId.split("-");delete n.emojiId,n.text=t;}return t}),{LudwigOnly:true})),i.on("emotes",(t=>{if(!e$4())return;const n=document.querySelector("yt-live-chat-item-list-renderer");if(null==n?void 0:n.emojiManager){if(n.emojiManager._mogulTvLoaded)return;n.emojiManager._mogulTvLoaded=!0,n.emojiManager.load([...t.values()]);}else console.warn("Cannot find chat list");}));}function S(t){return t?t._mtvType?t._mtvType:t.icon?t.icon.iconType.toLowerCase():t.customThumbnail?"member":"":""}async function M(t){I("yt-live-chat-author-badge-renderer",B("computeType_",(t=>S(t.liveChatAuthorBadgeRenderer)),{LudwigOnly:true})),I("yt-live-chat-author-chip",B("computeAuthorType_",(function(e){var n,i;const a=this.$["author-name"];if(a){let e;const o=null===(n=this.parentElement)||void 0===n?void 0:n.parentElement,r=null===(i=null==o?void 0:o.data)||void 0===i?void 0:i.authorExternalChannelId;if(r){const n=t.getUserInfo(r);(null==n?void 0:n.c)&&(e=n.c);}e||(e=function(t){const e=function(t){let e=0;if(0===t.length)return 0;for(let n=0;n{await n()?(document.body.setAttribute("data-mogul-theater-mode",""),i||window.dispatchEvent(new Event("resize")),i=!0):(i=!1,document.body.removeAttribute("data-mogul-theater-mode"));}),250);}(j),async function(t){if(!window.ytcfg)return;const e={key:window.ytcfg.get("INNERTUBE_API_KEY"),authUser:window.ytcfg.get("SESSION_INDEX"),pageId:window.ytcfg.get("DELEGATED_SESSION_ID"),href:window.location.href,context:window.ytcfg.get("INNERTUBE_CONTEXT")};n=await e$3(Object.assign(Object.assign({},e),{cookies:v(document.cookie)})),i=await t.fetch("/auth/@me"),(!n.success||!i.meta.isSuccess||n.data.id!==(null===(a=i.body)||void 0===a?void 0:a.sub))&&await t.fetch("/auth/login",e);var n,i,a;}(j),setInterval((()=>{const t=document.querySelector("ytd-live-chat-frame iframe");if(t&&!t.src.includes("QXZRwEzaeHNfDqtD")){const e=n();t.src+=`#QXZRwEzaeHNfDqtD=${encodeURIComponent(JSON.stringify(e))}`;}}),1e3);var L,O; diff --git a/fetch_youtube-71c76849.js b/fetch_youtube-71c76849.js new file mode 100644 index 0000000..e50481a --- /dev/null +++ b/fetch_youtube-71c76849.js @@ -0,0 +1,3 @@ +async function e(e){const t=await async function(e,t){const o=t.cookies.SAPISID||t.cookies["__Secure-3PAPISID"];if(!o)return {success:!1,code:400,message:"Missing cookie"};const n=new URL(t.href).origin,c=Math.floor(Date.now()/1e3),a=await async function(e){const t=await crypto.subtle.digest("SHA-1",(new TextEncoder).encode(e));return Array.from(new Uint8Array(t)).map((e=>e.toString(16).padStart(2,"0"))).join("")}(`${c} ${o} ${n}`),s={"x-origin":n,authorization:`SAPISIDHASH ${c}_${a}`,"x-goog-authuser":t.authUser,cookie:Object.entries(t.cookies).map((([e,t])=>`${e}=${t}`)).join(";")};t.pageId&&(s["x-goog-pageid"]=t.pageId);const i=await fetch(`https://www.youtube.com${e}?key=${t.key}`,{method:"POST",headers:s,body:JSON.stringify({context:t.context})});return {success:!0,data:await i.json()}}("/youtubei/v1/account/account_menu",e);if(!t.success)return t;const o=t.data;try{const e=o.actions[0].openPopupAction.popup.multiPageMenuRenderer,t=e.header.activeAccountHeaderRenderer,n=e.sections[0].multiPageMenuSectionRenderer.items[0].compactLinkRenderer.navigationEndpoint.browseEndpoint.browseId.trim().replace(/\n/g,"");return /^UC.{22}$/.test(n)?{success:!0,data:{id:n,profile:t.accountPhoto.thumbnails[0].url,username:t.accountName.simpleText}}:{success:!1,code:400,message:"Failed to authenticate"}}catch(e){return {success:!1,code:400,message:"Failed to authenticate"}}} + +export { e }; diff --git a/get_stream_details-b6177000.js b/get_stream_details-b6177000.js new file mode 100644 index 0000000..d118636 --- /dev/null +++ b/get_stream_details-b6177000.js @@ -0,0 +1,3 @@ +function n(){let n=function(){var n,e;const t=document.querySelector("ytd-page-manager");return null===(e=null===(n=null==t?void 0:t.data)||void 0===n?void 0:n.playerResponse)||void 0===e?void 0:e.videoDetails}();return n||(n=function(){const n=new URLSearchParams(window.location.hash.substring(1)).get("QXZRwEzaeHNfDqtD");if(n)try{return JSON.parse(n)}catch(n){return}}(),n||void 0)}function e(e=!0){const t=n();return t?"UCrPseYLGpNygVi34QpGNqpA"===t.channelId&&t.isLiveContent:e} + +export { e, n }; diff --git a/index-6137f488.js b/index-6137f488.js new file mode 100644 index 0000000..f440fb4 --- /dev/null +++ b/index-6137f488.js @@ -0,0 +1,3 @@ +var e={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function o(e,t,n){this.fn=e,this.context=t,this.once=n||!1;}function s(e,t,r,s,i){if("function"!=typeof r)throw new TypeError("The listener must be a function");var c=new o(r,s||e,i),f=n?n+t:t;return e._events[f]?e._events[f].fn?e._events[f]=[e._events[f],c]:e._events[f].push(c):(e._events[f]=c,e._eventsCount++),e}function i(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t];}function c(){this._events=new r,this._eventsCount=0;}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),c.prototype.eventNames=function(){var e,r,o=[];if(0===this._eventsCount)return o;for(r in e=this._events)t.call(e,r)&&o.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?o.concat(Object.getOwnPropertySymbols(e)):o},c.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return [];if(r.fn)return [r.fn];for(var o=0,s=r.length,i=new Array(s);o=0||(a[n]=t[n]);return a}function l(t){return null!==t&&"object"==typeof t&&t.constructor===Object}function d(t,e,n={clone:!0}){const r=n.clone?f({},t):t;return l(t)&&l(e)&&Object.keys(e).forEach((a=>{"__proto__"!==a&&(l(e[a])&&a in t&&l(t[a])?r[a]=d(t[a],e[a],n):r[a]=e[a]);})),r}function p(t){let e="https://mui.com/production-error/?code="+t;for(let t=1;t`@media (min-width:${m[t]}px)`};function y(t,e,n){const r=t.theme||{};if(Array.isArray(e)){const t=r.breakpoints||b;return e.reduce(((r,a,i)=>(r[t.up(t.keys[i])]=n(e[i]),r)),{})}if("object"==typeof e){const t=r.breakpoints||b;return Object.keys(e).reduce(((r,a)=>{if(-1!==Object.keys(t.values||m).indexOf(a)){r[t.up(a)]=n(e[a],a);}else {const t=a;r[t]=e[t];}return r}),{})}return n(e)}function x(t={}){var e;return (null==t||null==(e=t.keys)?void 0:e.reduce(((e,n)=>(e[t.up(n)]={},e)),{}))||{}}function k(t,e){return t.reduce(((t,e)=>{const n=t[e];return (!n||0===Object.keys(n).length)&&delete t[e],t}),e)}function v(t,e){return e&&"string"==typeof e?e.split(".").reduce(((t,e)=>t&&t[e]?t[e]:null),t):null}function O(t,e,n,r=n){let a;return a="function"==typeof t?t(n):Array.isArray(t)?t[n]||r:v(t,n)||r,e&&(a=e(a)),a}function A(t){const{prop:e,cssProperty:n=t.prop,themeKey:r,transform:a}=t,i=t=>{if(null==t[e])return null;const i=t[e],o=v(t.theme,r)||{};return y(t,i,(t=>{let r=O(o,a,t);return t===r&&"string"==typeof t&&(r=O(o,a,`${e}${"default"===t?"":g(t)}`,t)),!1===n?r:{[n]:r}}))};return i.propTypes={},i.filterProps=[e],i}const $={m:"margin",p:"padding"},w={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},S={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},T=function(t){const e={};return n=>(void 0===e[n]&&(e[n]=t(n)),e[n])}((t=>{if(t.length>2){if(!S[t])return [t];t=S[t];}const[e,n]=t.split(""),r=$[e],a=w[n]||"";return Array.isArray(a)?a.map((t=>r+t)):[r+a]})),M=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd","p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"];function j(t,e,n,r){const a=v(t,e)||n;return "number"==typeof a?t=>"string"==typeof t?t:a*t:Array.isArray(a)?t=>"string"==typeof t?t:a[t]:"function"==typeof a?a:()=>{}}function B(t){return j(t,"spacing",8)}function I(t,e){if("string"==typeof e||null==e)return e;const n=t(Math.abs(e));return e>=0?n:"number"==typeof n?-n:`-${n}`}function R(t,e,n,r){if(-1===e.indexOf(n))return null;const a=function(t,e){return n=>t.reduce(((t,r)=>(t[r]=I(e,n),t)),{})}(T(n),r);return y(t,t[n],a)}function z(t){return function(t,e){const n=B(t.theme);return Object.keys(t).map((r=>R(t,e,r,n))).reduce(h,{})}(t,M)}z.propTypes={},z.filterProps=M;const F=["values","unit","step"];var W={borderRadius:4};const E=["breakpoints","palette","spacing","shape"];function L(t={},...e){const{breakpoints:n={},palette:r={},spacing:a,shape:i={}}=t,o=u(t,E),s=function(t){const{values:e={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:n="px",step:r=5}=t,a=u(t,F),i=Object.keys(e);function o(t){return `@media (min-width:${"number"==typeof e[t]?e[t]:t}${n})`}function s(t){return `@media (max-width:${("number"==typeof e[t]?e[t]:t)-r/100}${n})`}function c(t,a){const o=i.indexOf(a);return `@media (min-width:${"number"==typeof e[t]?e[t]:t}${n}) and (max-width:${(-1!==o&&"number"==typeof e[i[o]]?e[i[o]]:a)-r/100}${n})`}return f({keys:i,values:e,up:o,down:s,between:c,only:function(t){return i.indexOf(t)+1(0===t.length?[1]:t).map((t=>{const n=e(t);return "number"==typeof n?`${n}px`:n})).join(" ");return n.mui=!0,n}(a);let l=d({breakpoints:s,direction:"ltr",components:{},palette:f({mode:"light"},r),spacing:c,shape:f({},W,i)},o);return l=e.reduce(((t,e)=>d(t,e)),l),l}function C(t,e=0,n=1){return Math.min(Math.max(e,t),n)}function H(t){if(t.type)return t;if("#"===t.charAt(0))return H(function(t){t=t.substr(1);const e=new RegExp(`.{1,${t.length>=6?2:1}}`,"g");let n=t.match(e);return n&&1===n[0].length&&(n=n.map((t=>t+t))),n?`rgb${4===n.length?"a":""}(${n.map(((t,e)=>e<3?parseInt(t,16):Math.round(parseInt(t,16)/255*1e3)/1e3)).join(", ")})`:""}(t));const e=t.indexOf("("),n=t.substring(0,e);if(-1===["rgb","rgba","hsl","hsla","color"].indexOf(n))throw new Error(p(9,t));let r,a=t.substring(e+1,t.length-1);if("color"===n){if(a=a.split(" "),r=a.shift(),4===a.length&&"/"===a[3].charAt(0)&&(a[3]=a[3].substr(1)),-1===["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].indexOf(r))throw new Error(p(10,r))}else a=a.split(",");return a=a.map((t=>parseFloat(t))),{type:n,values:a,colorSpace:r}}function P(t){const{type:e,colorSpace:n}=t;let{values:r}=t;return -1!==e.indexOf("rgb")?r=r.map(((t,e)=>e<3?parseInt(t,10):t)):-1!==e.indexOf("hsl")&&(r[1]=`${r[1]}%`,r[2]=`${r[2]}%`),r=-1!==e.indexOf("color")?`${n} ${r.join(" ")}`:`${r.join(", ")}`,`${e}(${r})`}function _(t){let e="hsl"===(t=H(t)).type?H(function(t){t=H(t);const{values:e}=t,n=e[0],r=e[1]/100,a=e[2]/100,i=r*Math.min(a,1-a),o=(t,e=(t+n/30)%12)=>a-i*Math.max(Math.min(e-3,9-e,1),-1);let s="rgb";const c=[Math.round(255*o(0)),Math.round(255*o(8)),Math.round(255*o(4))];return "hsla"===t.type&&(s+="a",c.push(e[3])),P({type:s,values:c})}(t)).values:t.values;return e=e.map((e=>("color"!==t.type&&(e/=255),e<=.03928?e/12.92:((e+.055)/1.055)**2.4))),Number((.2126*e[0]+.7152*e[1]+.0722*e[2]).toFixed(3))}function V(t,e){return t=H(t),e=C(e),"rgb"!==t.type&&"hsl"!==t.type||(t.type+="a"),"color"===t.type?t.values[3]=`/${e}`:t.values[3]=e,P(t)}function X(t,e){if(t=H(t),e=C(e),-1!==t.type.indexOf("hsl"))t.values[2]*=1-e;else if(-1!==t.type.indexOf("rgb")||-1!==t.type.indexOf("color"))for(let n=0;n<3;n+=1)t.values[n]*=1-e;return P(t)}function Y(t,e){if(t=H(t),e=C(e),-1!==t.type.indexOf("hsl"))t.values[2]+=(100-t.values[2])*e;else if(-1!==t.type.indexOf("rgb"))for(let n=0;n<3;n+=1)t.values[n]+=(255-t.values[n])*e;else if(-1!==t.type.indexOf("color"))for(let n=0;n<3;n+=1)t.values[n]+=(1-t.values[n])*e;return P(t)}const N=["mode","contrastThreshold","tonalOffset"],U={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:e.white,default:e.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},D={text:{primary:e.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:e.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function J(t,e,n,r){const a=r.light||r,i=r.dark||1.5*r;t[e]||(t.hasOwnProperty(n)?t[e]=t[n]:"light"===e?t.light=Y(t.main,a):"dark"===e&&(t.dark=X(t.main,i)));}function Z(t){const{mode:l="light",contrastThreshold:g=3,tonalOffset:h=.2}=t,m=u(t,N),b=t.primary||function(t="light"){return "dark"===t?{main:a[200],light:a[50],dark:a[400]}:{main:a[700],light:a[400],dark:a[800]}}(l),y=t.secondary||function(t="light"){return "dark"===t?{main:r[200],light:r[50],dark:r[400]}:{main:r[500],light:r[300],dark:r[700]}}(l),x=t.error||function(t="light"){return "dark"===t?{main:n[500],light:n[300],dark:n[700]}:{main:n[700],light:n[400],dark:n[800]}}(l),k=t.info||function(t="light"){return "dark"===t?{main:i[400],light:i[300],dark:i[700]}:{main:i[700],light:i[500],dark:i[900]}}(l),v=t.success||function(t="light"){return "dark"===t?{main:o[400],light:o[300],dark:o[700]}:{main:o[800],light:o[500],dark:o[900]}}(l),O=t.warning||function(t="light"){return "dark"===t?{main:s[400],light:s[300],dark:s[700]}:{main:"#ed6c02",light:s[500],dark:s[900]}}(l);function A(t){const e=function(t,e){const n=_(t),r=_(e);return (Math.max(n,r)+.05)/(Math.min(n,r)+.05)}(t,D.text.primary)>=g?D.text.primary:U.text.primary;return e}const $=({color:t,name:e,mainShade:n=500,lightShade:r=300,darkShade:a=700})=>{if(!(t=f({},t)).main&&t[n]&&(t.main=t[n]),!t.hasOwnProperty("main"))throw new Error(p(11,e?` (${e})`:"",n));if("string"!=typeof t.main)throw new Error(p(12,e?` (${e})`:"",JSON.stringify(t.main)));return J(t,"light",r,h),J(t,"dark",a,h),t.contrastText||(t.contrastText=A(t.main)),t},w={dark:D,light:U};return d(f({common:e,mode:l,primary:$({color:b,name:"primary"}),secondary:$({color:y,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:$({color:x,name:"error"}),warning:$({color:O,name:"warning"}),info:$({color:k,name:"info"}),success:$({color:v,name:"success"}),grey:c,contrastThreshold:g,getContrastText:A,augmentColor:$,tonalOffset:h},w[l]),m)}const q=["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"];const K={textTransform:"uppercase"},G='"Roboto", "Helvetica", "Arial", sans-serif';function Q(t,e){const n="function"==typeof e?e(t):e,{fontFamily:r=G,fontSize:a=14,fontWeightLight:i=300,fontWeightRegular:o=400,fontWeightMedium:s=500,fontWeightBold:c=700,htmlFontSize:l=16,allVariants:p,pxToRem:g}=n,h=u(n,q),m=a/14,b=g||(t=>t/l*m+"rem"),y=(t,e,n,a,i)=>{return f({fontFamily:r,fontWeight:t,fontSize:b(e),lineHeight:n},r===G?{letterSpacing:(o=a/e,Math.round(1e5*o)/1e5)+"em"}:{},i,p);var o;},x={h1:y(i,96,1.167,-1.5),h2:y(i,60,1.2,-.5),h3:y(o,48,1.167,0),h4:y(o,34,1.235,.25),h5:y(o,24,1.334,0),h6:y(s,20,1.6,.15),subtitle1:y(o,16,1.75,.15),subtitle2:y(s,14,1.57,.1),body1:y(o,16,1.5,.15),body2:y(o,14,1.43,.15),button:y(s,14,1.75,.4,K),caption:y(o,12,1.66,.4),overline:y(o,12,2.66,1,K)};return d(f({htmlFontSize:l,pxToRem:b,fontFamily:r,fontSize:a,fontWeightLight:i,fontWeightRegular:o,fontWeightMedium:s,fontWeightBold:c},x),h,{clone:!1})}function tt(...t){return [`${t[0]}px ${t[1]}px ${t[2]}px ${t[3]}px rgba(0,0,0,0.2)`,`${t[4]}px ${t[5]}px ${t[6]}px ${t[7]}px rgba(0,0,0,0.14)`,`${t[8]}px ${t[9]}px ${t[10]}px ${t[11]}px rgba(0,0,0,0.12)`].join(",")}var et=["none",tt(0,2,1,-1,0,1,1,0,0,1,3,0),tt(0,3,1,-2,0,2,2,0,0,1,5,0),tt(0,3,3,-2,0,3,4,0,0,1,8,0),tt(0,2,4,-1,0,4,5,0,0,1,10,0),tt(0,3,5,-1,0,5,8,0,0,1,14,0),tt(0,3,5,-1,0,6,10,0,0,1,18,0),tt(0,4,5,-2,0,7,10,1,0,2,16,1),tt(0,5,5,-3,0,8,10,1,0,3,14,2),tt(0,5,6,-3,0,9,12,1,0,3,16,2),tt(0,6,6,-3,0,10,14,1,0,4,18,3),tt(0,6,7,-4,0,11,15,1,0,4,20,3),tt(0,7,8,-4,0,12,17,2,0,5,22,4),tt(0,7,8,-4,0,13,19,2,0,5,24,4),tt(0,7,9,-4,0,14,21,2,0,5,26,4),tt(0,8,9,-5,0,15,22,2,0,6,28,5),tt(0,8,10,-5,0,16,24,2,0,6,30,5),tt(0,8,11,-5,0,17,26,2,0,6,32,5),tt(0,9,11,-5,0,18,28,2,0,7,34,6),tt(0,9,12,-6,0,19,29,2,0,7,36,6),tt(0,10,13,-6,0,20,31,3,0,8,38,7),tt(0,10,13,-6,0,21,33,3,0,8,40,7),tt(0,10,14,-6,0,22,35,3,0,8,42,7),tt(0,11,14,-7,0,23,36,3,0,9,44,8),tt(0,11,15,-7,0,24,38,3,0,9,46,8)];const nt=["duration","easing","delay"],rt={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},at={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function it(t){return `${Math.round(t)}ms`}function ot(t){if(!t)return 0;const e=t/36;return Math.round(10*(4+15*e**.25+e/5))}function st(t){const e=f({},rt,t.easing),n=f({},at,t.duration);return f({getAutoHeightDuration:ot,create:(t=["all"],r={})=>{const{duration:a=n.standard,easing:i=e.easeInOut,delay:o=0}=r;return u(r,nt),(Array.isArray(t)?t:[t]).map((t=>`${t} ${"string"==typeof a?a:it(a)} ${i} ${"string"==typeof o?o:it(o)}`)).join(",")}},t,{easing:e,duration:n})}var ct={mobileStepper:1e3,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};const ft=["breakpoints","mixins","spacing","palette","transitions","typography","shape"];function ut(t={},...e){const{mixins:n={},palette:r={},transitions:a={},typography:i={}}=t,o=u(t,ft),s=Z(r),c=L(t);let l=d(c,{mixins:(p=c.breakpoints,c.spacing,g=n,f({toolbar:{minHeight:56,[`${p.up("xs")} and (orientation: landscape)`]:{minHeight:48},[p.up("sm")]:{minHeight:64}}},g)),palette:s,shadows:et.slice(),typography:Q(s,i),transitions:st(a),zIndex:f({},ct)});var p,g;return l=d(l,o),l=e.reduce(((t,e)=>d(t,e)),l),l}const lt=ut({palette:{mode:"dark",primary:{main:"#7463fb"},secondary:{main:"#fd8dea"}},typography:{fontFamily:"Rubik, sans-serif",label:{color:"#ccc",fontStyle:"italic"},header:{fontSize:"1.2rem",fontWeight:500}},components:{MuiTooltip:{styleOverrides:{tooltip:{fontSize:14}}}}});function dt(t){try{if(!t)return;return JSON.parse(atob(t.split(".")[1]))}catch(t){return void console.error(t)}} + +export { A, I, L, V, X, Y, ut as a, d as b, lt as c, dt as d, at as e, f, g, h, j, k, l, m, n, o, p, t, u, x, y, z }; diff --git a/popup/index.html b/popup/index.html new file mode 100644 index 0000000..79ac60b --- /dev/null +++ b/popup/index.html @@ -0,0 +1,12 @@ + + + + Mogul.TV + + + +
+ + + + \ No newline at end of file diff --git a/popup/index.js b/popup/index.js new file mode 100644 index 0000000..f164ab5 --- /dev/null +++ b/popup/index.js @@ -0,0 +1,181 @@ +import { f, A as A$1, L as L$1, l, u, a as ut$1, g, V as V$1, X as X$1, Y as Y$1, p, b as d, c as lt$1, h, j as j$1, y, z as z$1, d as dt$1, x, k, e as at$1, n as n$2, o, I as I$1, m as m$1 } from '../parse_token.util-ed270559.js'; +import { e } from '../style-inject.es-a0e1a0ba.js'; +import { e as e$1, n as n$1, m } from '../storage-a8ac7bd3.js'; +import { n } from '../connectRuntime-a699491c.js'; + +var T={exports:{}},j={},z=Object.getOwnPropertySymbols,N=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable;function L(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}var I=function(){try{if(!Object.assign)return !1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return !1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(t).map((function(e){return t[e]}));if("0123456789"!==r.join(""))return !1;var o={};return "abcdefghijklmnopqrst".split("").forEach((function(e){o[e]=e;})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},o)).join("")}catch(e){return !1}}()?Object.assign:function(e,t){for(var n,r,o=L(e),a=1;a0?Pe(Fe,--Le):0,Ne--,10===Ie&&(Ne=1,ze--),Ie}function De(){return Ie=Le<_e?Pe(Fe,Le++):0,Ne++,10===Ie&&(Ne=1,ze++),Ie}function We(){return Pe(Fe,Le)}function Ue(){return Le}function He(e,t){return Me(Fe,e,t)}function Ve(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function qe(e){return ze=Ne=1,_e=Oe(Fe=e),Le=0,[]}function Ke(e){return Fe="",e}function Xe(e){return Ce(He(Le-1,Ge(91===e?e+2:40===e?e+1:e)))}function Ye(e){for(;(Ie=We())&&Ie<33;)De();return Ve(e)>2||Ve(Ie)>3?"":" "}function Qe(e,t){for(;--t&&De()&&!(Ie<48||Ie>102||Ie>57&&Ie<65||Ie>70&&Ie<97););return He(e,Ue()+(t<6&&32==We()&&32==De()))}function Ge(e){for(;De();)switch(Ie){case e:return Le;case 34:case 39:34!==e&&39!==e&&Ge(Ie);break;case 40:41===e&&Ge(e);break;case 92:De();}return Le}function Ze(e,t){for(;De()&&e+Ie!==57&&(e+Ie!==84||47!==We()););return "/*"+He(t,Le-1)+"*"+ke(47===e?e:De())}function Je(e){for(;!Ve(We());)De();return He(e,Le)}function et(e){return Ke(tt("",null,null,null,[""],e=qe(e),0,[0],e))}function tt(e,t,n,r,o,a,i,l,s){for(var u=0,c=0,d=i,p=0,f=0,h=0,m=1,v=1,g=1,b=0,y="",x=o,w=a,k=r,S=y;v;)switch(h=b,b=De()){case 40:if(108!=h&&58==S.charCodeAt(d-1)){-1!=Re(S+=Ee(Xe(b),"&","&\f"),"&\f")&&(g=-1);break}case 34:case 39:case 91:S+=Xe(b);break;case 9:case 10:case 13:case 32:S+=Ye(h);break;case 92:S+=Qe(Ue()-1,7);continue;case 47:switch(We()){case 42:case 47:je(rt(Ze(De(),Ue()),t,n),s);break;default:S+="/";}break;case 123*m:l[u++]=Oe(S)*g;case 125*m:case 59:case 0:switch(b){case 0:case 125:v=0;case 59+c:f>0&&Oe(S)-d&&je(f>32?ot(S+";",r,n,d-1):ot(Ee(S," ","")+";",r,n,d-2),s);break;case 59:S+=";";default:if(je(k=nt(S,t,n,u,c,o,l,y,x=[],w=[],d),a),123===b)if(0===c)tt(S,t,k,k,x,a,d,l,w);else switch(p){case 100:case 109:case 115:tt(e,k,k,r&&je(nt(e,k,k,0,0,o,l,y,o,x=[],d),w),o,w,d,l,r?x:w);break;default:tt(S,k,k,k,[""],w,0,l,w);}}u=c=f=0,m=g=1,y=S="",d=i;break;case 58:d=1+Oe(S),f=h;default:if(m<1)if(123==b)--m;else if(125==b&&0==m++&&125==Be())continue;switch(S+=ke(b),b*m){case 38:g=c>0?1:(S+="\f",-1);break;case 44:l[u++]=(Oe(S)-1)*g,g=1;break;case 64:45===We()&&(S+=Xe(De())),p=We(),c=d=Oe(y=S+=Je(Ue())),b++;break;case 45:45===h&&2==Oe(S)&&(m=0);}}return a}function nt(e,t,n,r,o,a,i,l,s,u,c){for(var d=o-1,p=0===o?a:[""],f=Te(p),h=0,m=0,v=0;h0?p[g]+" "+b:Ee(b,/&\f/g,p[g])))&&(s[v++]=y);return $e(e,t,n,0===o?"rule":l,s,u,c)}function rt(e,t,n){return $e(e,t,n,"comm",ke(Ie),Me(e,2,-2),0)}function ot(e,t,n,r){return $e(e,t,n,"decl",Me(e,0,r),Me(e,r+1,-1),r)}function at(e,t){switch(function(e,t){return (((t<<2^Pe(e,0))<<2^Pe(e,1))<<2^Pe(e,2))<<2^Pe(e,3)}(e,t)){case 5103:return xe+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return xe+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return xe+e+ye+e+be+e+e;case 6828:case 4268:return xe+e+be+e+e;case 6165:return xe+e+be+"flex-"+e+e;case 5187:return xe+e+Ee(e,/(\w+).+(:[^]+)/,"-webkit-box-$1$2-ms-flex-$1$2")+e;case 5443:return xe+e+be+"flex-item-"+Ee(e,/flex-|-self/,"")+e;case 4675:return xe+e+be+"flex-line-pack"+Ee(e,/align-content|flex-|-self/,"")+e;case 5548:return xe+e+be+Ee(e,"shrink","negative")+e;case 5292:return xe+e+be+Ee(e,"basis","preferred-size")+e;case 6060:return xe+"box-"+Ee(e,"-grow","")+xe+e+be+Ee(e,"grow","positive")+e;case 4554:return xe+Ee(e,/([^-])(transform)/g,"$1-webkit-$2")+e;case 6187:return Ee(Ee(Ee(e,/(zoom-|grab)/,xe+"$1"),/(image-set)/,xe+"$1"),e,"")+e;case 5495:case 3959:return Ee(e,/(image-set\([^]*)/,xe+"$1$`$1");case 4968:return Ee(Ee(e,/(.+:)(flex-)?(.*)/,"-webkit-box-pack:$3-ms-flex-pack:$3"),/s.+-b[^;]+/,"justify")+xe+e+e;case 4095:case 3583:case 4068:case 2532:return Ee(e,/(.+)-inline(.+)/,xe+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(Oe(e)-1-t>6)switch(Pe(e,t+1)){case 109:if(45!==Pe(e,t+4))break;case 102:return Ee(e,/(.+:)(.+)-([^]+)/,"$1-webkit-$2-$3$1"+ye+(108==Pe(e,t+3)?"$3":"$2-$3"))+e;case 115:return ~Re(e,"stretch")?at(Ee(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==Pe(e,t+1))break;case 6444:switch(Pe(e,Oe(e)-3-(~Re(e,"!important")&&10))){case 107:return Ee(e,":",":"+xe)+e;case 101:return Ee(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+xe+(45===Pe(e,14)?"inline-":"")+"box$3$1"+xe+"$2$3$1"+be+"$2box$3")+e}break;case 5936:switch(Pe(e,t+11)){case 114:return xe+e+be+Ee(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return xe+e+be+Ee(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return xe+e+be+Ee(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return xe+e+be+e+e}return e}function it(e,t){for(var n="",r=Te(e),o=0;o-1&&!e.return)switch(e.type){case"decl":e.return=at(e.value,e.length);break;case"@keyframes":return it([Ae(e,{value:Ee(e.value,"@","@"+xe)})],r);case"rule":if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return (e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return it([Ae(e,{props:[Ee(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return it([Ae(e,{props:[Ee(t,/:(plac\w+)/,":-webkit-input-$1")]}),Ae(e,{props:[Ee(t,/:(plac\w+)/,":-moz-$1")]}),Ae(e,{props:[Ee(t,/:(plac\w+)/,be+"input-$1")]})],r)}return ""}))}}],yt=function(e){var t=e.key;if(vt&&"css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""));}));}var r,o,a=e.stylisPlugins||bt,i={},l=[];vt&&(r=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16);}return (((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(o)+s;return {name:u,styles:o,next:nn}},an="undefined"!=typeof document,ln=T.exports.createContext("undefined"!=typeof HTMLElement?yt({key:"css"}):null);ln.Provider;var sn=function(e){return T.exports.forwardRef((function(t,n){var r=T.exports.useContext(ln);return e(t,r,n)}))};an||(sn=function(e){return function(t){var n=T.exports.useContext(ln);return null===n?(n=yt({key:"css"}),T.exports.createElement(ln.Provider,{value:n},e(t,n))):e(t,n)}});var un=T.exports.createContext({}),cn=sn((function(e,t){var n=e.styles,r=on([n],void 0,T.exports.useContext(un));if(!an){for(var o,a=r.name,i=r.styles,l=r.next;void 0!==l;)a+=" "+l.name,i+=l.styles,l=l.next;var s=!0===t.compat,u=t.insert("",{name:a,styles:i},t.sheet,s);return s?null:T.exports.createElement("style",((o={})["data-emotion"]=t.key+"-global "+a,o.dangerouslySetInnerHTML={__html:u},o.nonce=t.sheet.nonce,o))}var c=T.exports.useRef();return T.exports.useLayoutEffect((function(){var e=t.key+"-global",n=new ge({key:e,nonce:t.sheet.nonce,container:t.sheet.container,speedy:t.sheet.isSpeedy}),o=!1,a=document.querySelector('style[data-emotion="'+e+" "+r.name+'"]');return t.sheet.tags.length&&(n.before=t.sheet.tags[0]),null!==a&&(o=!0,a.setAttribute("data-emotion",e),n.hydrate([a])),c.current=[n,o],function(){n.flush();}}),[t]),T.exports.useLayoutEffect((function(){var e=c.current,n=e[0];if(e[1])e[1]=!1;else {if(void 0!==r.next&&Kt(t,r.next,!0),n.tags.length){var o=n.tags[n.tags.length-1].nextElementSibling;n.before=o,n.flush();}t.insert("",r,n,!1);}}),[t,r.name]),null}));function dn(){for(var e=arguments.length,t=new Array(e),n=0;n96?fn:hn},vn=function(e,t,n){var r;if(t){var o=t.shouldForwardProp;r=e.__emotion_forwardProp&&o?function(t){return e.__emotion_forwardProp(t)&&o(t)}:o;}return "function"!=typeof r&&n&&(r=e.__emotion_forwardProp),r},gn="undefined"!=typeof document,bn=function(){return null},yn=function t(n,r){var o,a,i=n.__emotion_real===n,l=i&&n.__emotion_base||n;void 0!==r&&(o=r.label,a=r.target);var s=vn(n,r,i),u=s||mn(l),c=!u("as");return function(){var d=arguments,p=i&&void 0!==n.__emotion_styles?n.__emotion_styles.slice(0):[];if(void 0!==o&&p.push("label:"+o+";"),null==d[0]||void 0===d[0].raw)p.push.apply(p,d);else {p.push(d[0][0]);for(var f$1=d.length,h=1;h{return t(null==(r=e)||0===Object.keys(r).length?n:e);var r;}:t;return wn.exports.jsx(cn,{styles:r})} +/** @license MUI v5.2.6 + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */function jn(e,t){return xn(e,t)}kn.jsx=On,kn.jsxs=On,wn.exports=kn;var Nn=60103,_n=60106,Ln=60107,In=60108,Fn=60114,$n=60109,An=60110,Bn=60112,Dn=60113,Wn=60120,Un=60115,Hn=60116,Vn=60121,qn=60122,Kn=60117,Xn=60129,Yn=60131; +/** @license React v17.0.2 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */if("function"==typeof Symbol&&Symbol.for){var Qn=Symbol.for;Nn=Qn("react.element"),_n=Qn("react.portal"),Ln=Qn("react.fragment"),In=Qn("react.strict_mode"),Fn=Qn("react.profiler"),$n=Qn("react.provider"),An=Qn("react.context"),Bn=Qn("react.forward_ref"),Dn=Qn("react.suspense"),Wn=Qn("react.suspense_list"),Un=Qn("react.memo"),Hn=Qn("react.lazy"),Vn=Qn("react.block"),qn=Qn("react.server.block"),Kn=Qn("react.fundamental"),Xn=Qn("react.debug_trace_mode"),Yn=Qn("react.legacy_hidden");}function sr(...e){return e.reduce(((e,t)=>null==t?e:function(...n){e.apply(this,n),t.apply(this,n);}),(()=>{}))}function ur(e,t=166){let n;function r(...r){clearTimeout(n),n=setTimeout((()=>{e.apply(this,r);}),t);}return r.clear=()=>{clearTimeout(n);},r}function cr(e,t){return T.exports.isValidElement(e)&&-1!==t.indexOf(e.type.muiName)}function dr(e){return e&&e.ownerDocument||document}function pr(e){return dr(e).defaultView||window}function fr(e,t){"function"==typeof e?e(t):e&&(e.current=t);}var hr="undefined"!=typeof window?T.exports.useLayoutEffect:T.exports.useEffect;let mr=0;function vr(e){const[t,n]=T.exports.useState(e),r=e||t;return T.exports.useEffect((()=>{null==t&&(mr+=1,n(`mui-${mr}`));}),[t]),r}function gr({controlled:e,default:t,name:n,state:r="value"}){const{current:o}=T.exports.useRef(void 0!==e),[a,i]=T.exports.useState(t);return [o?e:a,T.exports.useCallback((e=>{o||i(e);}),[])]}function br(e){const t=T.exports.useRef(e);return hr((()=>{t.current=e;})),T.exports.useCallback(((...e)=>(0, t.current)(...e)),[])}function yr(e,t){return T.exports.useMemo((()=>null==e&&null==t?null:n=>{fr(e,n),fr(t,n);}),[e,t])}let xr,wr=!0,kr=!1;const Sr={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function Cr(e){e.metaKey||e.altKey||e.ctrlKey||(wr=!0);}function Er(){wr=!1;}function Rr(){"hidden"===this.visibilityState&&kr&&(wr=!0);}function Pr(e){const{target:t}=e;try{return t.matches(":focus-visible")}catch(e){}return wr||function(e){const{type:t,tagName:n}=e;return !("INPUT"!==n||!Sr[t]||e.readOnly)||"TEXTAREA"===n&&!e.readOnly||!!e.isContentEditable}(t)}function Mr(){const e=T.exports.useCallback((e=>{var t;null!=e&&((t=e.ownerDocument).addEventListener("keydown",Cr,!0),t.addEventListener("mousedown",Er,!0),t.addEventListener("pointerdown",Er,!0),t.addEventListener("touchstart",Er,!0),t.addEventListener("visibilitychange",Rr,!0));}),[]),t=T.exports.useRef(!1);return {isFocusVisibleRef:t,onFocus:function(e){return !!Pr(e)&&(t.current=!0,!0)},onBlur:function(){return !!t.current&&(kr=!0,window.clearTimeout(xr),xr=window.setTimeout((()=>{kr=!1;}),100),t.current=!1,!0)},ref:e}}function Or(e){const t=e.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}let Tr;function jr(){if(Tr)return Tr;const e=document.createElement("div"),t=document.createElement("div");return t.style.width="10px",t.style.height="1px",e.appendChild(t),e.dir="rtl",e.style.fontSize="14px",e.style.width="4px",e.style.height="1px",e.style.position="absolute",e.style.top="-1000px",e.style.overflow="scroll",document.body.appendChild(e),Tr="reverse",e.scrollLeft>0?Tr="default":(e.scrollLeft=1,0===e.scrollLeft&&(Tr="negative")),document.body.removeChild(e),Tr}function zr(e,t){const n=e.scrollLeft;if("rtl"!==t)return n;switch(jr()){case"negative":return e.scrollWidth-e.clientWidth+n;case"reverse":return e.scrollWidth-e.clientWidth-n;default:return n}}function Nr(t,n){const r=f({},n);return Object.keys(t).forEach((e=>{void 0===r[e]&&(r[e]=t[e]);})),r}function _r(...e){const n=e.reduce(((e,t)=>(t.filterProps.forEach((n=>{e[n]=t;})),e)),{}),r=e=>Object.keys(e).reduce(((r,o)=>n[o]?h(r,n[o](e)):r),{});return r.propTypes={},r.filterProps=e.reduce(((e,t)=>e.concat(t.filterProps)),[]),r}function Lr(e){return "number"!=typeof e?e:`${e}px solid`}const Ir=A$1({prop:"border",themeKey:"borders",transform:Lr}),Fr=A$1({prop:"borderTop",themeKey:"borders",transform:Lr}),$r=A$1({prop:"borderRight",themeKey:"borders",transform:Lr}),Ar=A$1({prop:"borderBottom",themeKey:"borders",transform:Lr}),Br=A$1({prop:"borderLeft",themeKey:"borders",transform:Lr}),Dr=A$1({prop:"borderColor",themeKey:"palette"}),Wr=A$1({prop:"borderTopColor",themeKey:"palette"}),Ur=A$1({prop:"borderRightColor",themeKey:"palette"}),Hr=A$1({prop:"borderBottomColor",themeKey:"palette"}),Vr=A$1({prop:"borderLeftColor",themeKey:"palette"}),qr=e=>{if(void 0!==e.borderRadius&&null!==e.borderRadius){const t=j$1(e.theme,"shape.borderRadius",4),n=e=>({borderRadius:I$1(t,e)});return y(e,e.borderRadius,n)}return null};qr.propTypes={},qr.filterProps=["borderRadius"];var Kr=_r(Ir,Fr,$r,Ar,Br,Dr,Wr,Ur,Hr,Vr,qr);var Xr=_r(A$1({prop:"displayPrint",cssProperty:!1,transform:e=>({"@media print":{display:e}})}),A$1({prop:"display"}),A$1({prop:"overflow"}),A$1({prop:"textOverflow"}),A$1({prop:"visibility"}),A$1({prop:"whiteSpace"}));var Yr=_r(A$1({prop:"flexBasis"}),A$1({prop:"flexDirection"}),A$1({prop:"flexWrap"}),A$1({prop:"justifyContent"}),A$1({prop:"alignItems"}),A$1({prop:"alignContent"}),A$1({prop:"order"}),A$1({prop:"flex"}),A$1({prop:"flexGrow"}),A$1({prop:"flexShrink"}),A$1({prop:"alignSelf"}),A$1({prop:"justifyItems"}),A$1({prop:"justifySelf"}));const Qr=e=>{if(void 0!==e.gap&&null!==e.gap){const t=j$1(e.theme,"spacing",8),n=e=>({gap:I$1(t,e)});return y(e,e.gap,n)}return null};Qr.propTypes={},Qr.filterProps=["gap"];const Gr=e=>{if(void 0!==e.columnGap&&null!==e.columnGap){const t=j$1(e.theme,"spacing",8),n=e=>({columnGap:I$1(t,e)});return y(e,e.columnGap,n)}return null};Gr.propTypes={},Gr.filterProps=["columnGap"];const Zr=e=>{if(void 0!==e.rowGap&&null!==e.rowGap){const t=j$1(e.theme,"spacing",8),n=e=>({rowGap:I$1(t,e)});return y(e,e.rowGap,n)}return null};Zr.propTypes={},Zr.filterProps=["rowGap"];var Jr=_r(Qr,Gr,Zr,A$1({prop:"gridColumn"}),A$1({prop:"gridRow"}),A$1({prop:"gridAutoFlow"}),A$1({prop:"gridAutoColumns"}),A$1({prop:"gridAutoRows"}),A$1({prop:"gridTemplateColumns"}),A$1({prop:"gridTemplateRows"}),A$1({prop:"gridTemplateAreas"}),A$1({prop:"gridArea"}));var eo=_r(A$1({prop:"color",themeKey:"palette"}),A$1({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette"}),A$1({prop:"backgroundColor",themeKey:"palette"}));var to=_r(A$1({prop:"position"}),A$1({prop:"zIndex",themeKey:"zIndex"}),A$1({prop:"top"}),A$1({prop:"right"}),A$1({prop:"bottom"}),A$1({prop:"left"}));var no=A$1({prop:"boxShadow",themeKey:"shadows"});function ro(e){return e<=1&&0!==e?100*e+"%":e}const oo=A$1({prop:"width",transform:ro}),ao=e=>{if(void 0!==e.maxWidth&&null!==e.maxWidth){const t=t=>{var n,r,o;return {maxWidth:(null==(n=e.theme)||null==(r=n.breakpoints)||null==(o=r.values)?void 0:o[t])||m$1[t]||ro(t)}};return y(e,e.maxWidth,t)}return null};ao.filterProps=["maxWidth"];const io=A$1({prop:"minWidth",transform:ro}),lo=A$1({prop:"height",transform:ro}),so=A$1({prop:"maxHeight",transform:ro}),uo=A$1({prop:"minHeight",transform:ro});A$1({prop:"size",cssProperty:"width",transform:ro}),A$1({prop:"size",cssProperty:"height",transform:ro});var co=_r(oo,ao,io,lo,so,uo,A$1({prop:"boxSizing"}));const po=A$1({prop:"fontFamily",themeKey:"typography"}),fo=A$1({prop:"fontSize",themeKey:"typography"}),ho=A$1({prop:"fontStyle",themeKey:"typography"}),mo=A$1({prop:"fontWeight",themeKey:"typography"}),vo=A$1({prop:"letterSpacing"}),go=A$1({prop:"lineHeight"}),bo=A$1({prop:"textAlign"});var yo=_r(A$1({prop:"typography",cssProperty:!1,themeKey:"typography"}),po,fo,ho,mo,vo,go,bo);const xo={borders:Kr.filterProps,display:Xr.filterProps,flexbox:Yr.filterProps,grid:Jr.filterProps,positions:to.filterProps,palette:eo.filterProps,shadows:no.filterProps,sizing:co.filterProps,spacing:z$1.filterProps,typography:yo.filterProps},wo={borders:Kr,display:Xr,flexbox:Yr,grid:Jr,positions:to,palette:eo,shadows:no,sizing:co,spacing:z$1,typography:yo},ko=Object.keys(xo).reduce(((e,t)=>(xo[t].forEach((n=>{e[n]=wo[t];})),e)),{});function So(e,t,n){const r={[e]:t,theme:n},o=ko[e];return o?o(r):{[e]:t}}function Co(e){const{sx:n,theme:r={}}=e||{};if(!n)return null;function a(e){let n=e;if("function"==typeof e)n=e(r);else if("object"!=typeof e)return e;const a=x(r.breakpoints),i=Object.keys(a);let l=a;return Object.keys(n).forEach((e=>{const a=(i=n[e],s=r,"function"==typeof i?i(s):i);var i,s;if(null!=a)if("object"==typeof a)if(ko[e])l=h(l,So(e,a,r));else {const n=y({theme:r},a,(t=>({[e]:t})));!function(...e){const t=e.reduce(((e,t)=>e.concat(Object.keys(t))),[]),n=new Set(t);return e.every((e=>n.size===Object.keys(e).length))}(n,a)?l=h(l,n):l[e]=Co({sx:a,theme:r});}else l=h(l,So(e,a,r));})),k(i,l)}return Array.isArray(n)?n.map(a):a(n)}Co.filterProps=["sx"];const Eo=["sx"];function Ro(t){const{sx:n}=t,r=u(t,Eo),{systemProps:o,otherProps:a}=(e=>{const t={systemProps:{},otherProps:{}};return Object.keys(e).forEach((n=>{ko[n]?t.systemProps[n]=e[n]:t.otherProps[n]=e[n];})),t})(r);let i;return i=Array.isArray(n)?[o,...n]:"function"==typeof n?(...t)=>{const r=n(...t);return l(r)?f({},o,r):o}:f({},o,n),f({},a,{sx:i})}function Po(e){var t,n,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t{const t=null===o?r:function(t,n){if("function"==typeof n)return n(t);return f({},t,n)}(o,r);return null!=t&&(t[jo]=null!==o),t}),[r,o]);return wn.exports.jsx(Oo.Provider,{value:a,children:n})}function No(e=null){const t=To();return t&&(n=t,0!==Object.keys(n).length)?t:e;var n;}const _o=L$1();function Lo(e=_o){return No(e)}const Io=["className","component"];function Fo(t={}){const{defaultTheme:n,defaultClassName:r="MuiBox-root",generateClassName:o}=t,a=jn("div")(Co);return T.exports.forwardRef((function(t,i){const l=Lo(n),s=Ro(t),{className:u$1,component:d="div"}=s,p=u(s,Io);return wn.exports.jsx(a,f({as:d,ref:i,className:Mo(u$1,o?o(r):r),theme:l},p))}))}var $o=Fo();const Ao=["variant"];function Bo(e){return 0===e.length}function Do(e){const{variant:t}=e,n=u(e,Ao);let r=t||"";return Object.keys(n).sort().forEach((t=>{r+="color"===t?Bo(r)?e[t]:g(e[t]):`${Bo(r)?t:g(t)}${g(e[t].toString())}`;})),r}const Wo=["name","slot","skipVariantsResolver","skipSx","overridesResolver"],Uo=["theme"],Ho=["theme"];function Vo(e){return 0===Object.keys(e).length}function qo(e){return "ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}const Ko=L$1();function Xo({props:e,name:t,defaultTheme:n}){const r=function(e){const{theme:t,name:n,props:r}=e;return t&&t.components&&t.components[n]&&t.components[n].defaultProps?Nr(t.components[n].defaultProps,r):r}({theme:Lo(n),name:t,props:e});return r}function Yo(e){const t=Lo();return wn.exports.jsx(un.Provider,{value:"object"==typeof t?t:{},children:e.children})}function Qo(e){return "string"==typeof e}function Go(t,n={},r){return Qo(t)?n:f({},n,{ownerState:f({},n.ownerState,r)})}function Zo(e,t,n){const r={};return Object.keys(e).forEach((o=>{r[o]=e[o].reduce(((e,r)=>(r&&(n&&n[r]&&e.push(n[r]),e.push(t(r))),e)),[]).join(" ");})),r}const Jo=e=>e;var ea=(()=>{let e=Jo;return {configure(t){e=t;},generate:t=>e(t),reset(){e=Jo;}}})();const ta={active:"Mui-active",checked:"Mui-checked",completed:"Mui-completed",disabled:"Mui-disabled",error:"Mui-error",expanded:"Mui-expanded",focused:"Mui-focused",focusVisible:"Mui-focusVisible",required:"Mui-required",selected:"Mui-selected"};function na(e,t){return ta[t]||`${ea.generate(e)}-${t}`}function ra(e,t){const n={};return t.forEach((t=>{n[t]=na(e,t);})),n}function oa(e){return na("MuiBackdrop",e)}ra("MuiBackdrop",["root","invisible"]);const aa=["classes","className","invisible","component","components","componentsProps","theme"];var ia=T.exports.forwardRef((function(t,n){const{classes:r,className:o,invisible:a=!1,component:i="div",components:l={},componentsProps:s={},theme:u$1}=t,d=u(t,aa),p=f({},t,{classes:r,invisible:a}),f$1=(e=>{const{classes:t,invisible:n}=e;return Zo({root:["root",n&&"invisible"]},oa,t)})(p),h=l.Root||i,m=s.root||{};return wn.exports.jsx(h,f({"aria-hidden":!0},m,!Qo(h)&&{as:i,ownerState:f({},p,m.ownerState),theme:u$1},{ref:n},d,{className:Mo(f$1.root,m.className,o)}))})),la={exports:{}},sa={},ua={exports:{}},ca={}; +/** @license React v0.20.2 + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +!function(e){var t,n,r,o;if("object"==typeof performance&&"function"==typeof performance.now){var a=performance;e.unstable_now=function(){return a.now()};}else {var i=Date,l=i.now();e.unstable_now=function(){return i.now()-l};}if("undefined"==typeof window||"function"!=typeof MessageChannel){var s=null,u=null,c=function(){if(null!==s)try{var t=e.unstable_now();s(!0,t),s=null;}catch(e){throw setTimeout(c,0),e}};t=function(e){null!==s?setTimeout(t,0,e):(s=e,setTimeout(c,0));},n=function(e,t){u=setTimeout(e,t);},r=function(){clearTimeout(u);},e.unstable_shouldYield=function(){return !1},o=e.unstable_forceFrameRate=function(){};}else {var d=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var f=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof f&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills");}var h=!1,m=null,v=-1,g=5,b=0;e.unstable_shouldYield=function(){return e.unstable_now()>=b},o=function(){},e.unstable_forceFrameRate=function(e){0>e||125>>1,o=e[r];if(!(void 0!==o&&0C(i,n))void 0!==s&&0>C(s,i)?(e[r]=s,e[l]=n,r=l):(e[r]=i,e[a]=n,r=a);else {if(!(void 0!==s&&0>C(s,n)))break e;e[r]=s,e[l]=n,r=l;}}}return t}return null}function C(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var E=[],R=[],P=1,M=null,O=3,T=!1,j=!1,z=!1;function N(e){for(var t=k(R);null!==t;){if(null===t.callback)S(R);else {if(!(t.startTime<=e))break;S(R),t.sortIndex=t.expirationTime,w(E,t);}t=k(R);}}function _(e){if(z=!1,N(e),!j)if(null!==k(E))j=!0,t(L);else {var r=k(R);null!==r&&n(_,r.startTime-e);}}function L(t,o){j=!1,z&&(z=!1,r()),T=!0;var a=O;try{for(N(o),M=k(E);null!==M&&(!(M.expirationTime>o)||t&&!e.unstable_shouldYield());){var i=M.callback;if("function"==typeof i){M.callback=null,O=M.priorityLevel;var l=i(M.expirationTime<=o);o=e.unstable_now(),"function"==typeof l?M.callback=l:M===k(E)&&S(E),N(o);}else S(E);M=k(E);}if(null!==M)var s=!0;else {var u=k(R);null!==u&&n(_,u.startTime-o),s=!1;}return s}finally{M=null,O=a,T=!1;}}var I=o;e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null;},e.unstable_continueExecution=function(){j||T||(j=!0,t(L));},e.unstable_getCurrentPriorityLevel=function(){return O},e.unstable_getFirstCallbackNode=function(){return k(E)},e.unstable_next=function(e){switch(O){case 1:case 2:case 3:var t=3;break;default:t=O;}var n=O;O=t;try{return e()}finally{O=n;}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=I,e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3;}var n=O;O=e;try{return t()}finally{O=n;}},e.unstable_scheduleCallback=function(o,a,i){var l=e.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0l?(o.sortIndex=i,w(R,o),null===k(E)&&o===k(R)&&(z?r():z=!0,n(_,i-l))):(o.sortIndex=s,w(E,o),j||T||(j=!0,t(L))),o},e.unstable_wrapCallback=function(e){var t=O;return function(){var n=O;O=t;try{return e.apply(this,arguments)}finally{O=n;}}};}(ca),ua.exports=ca; +/** @license React v17.0.2 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +var da=T.exports,pa=I,fa=ua.exports;function ha(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n